Java Scanner nextInt() 方法

定义和用法

nextInt() 方法返回下一个标记(token)所表示的整数值。该标记必须表示一个介于 -2,147,483,648 和 2,147,483,647 之间的整数。

扫描器能够解释数字分组,例如使用逗号来分隔每三位数字。数字分组的格式取决于扫描器的区域设置(locale settings),这可以通过 useLocale() 方法来更改。

如果使用了 radix 参数,则扫描器会按照该基数来解析数字。例如,基数为 16 时,会将数字解析为十六进制(数字 0 到 9 和字母 A 到 F)。

如果没有使用 radix 参数,则扫描器会使用其默认的基数来解析数字,默认基数为 10,但可以通过 useRadix() 方法来更改。

什么是标记(token)?

标记是由分隔符分隔开的一串字符。默认的分隔符是一组空白字符,但可以使用 useDelimiter() 方法来更改分隔符。

实例

打印字符串中每个整数的值:

// 创建一个扫描器对象
Scanner myObj = new Scanner("一个整数是介于 -2,147,483,648 和 2,147,483,647 之间的数字");

// 打印扫描器中每个整数的值
while(myObj.hasNext()) {
  if(myObj.hasNextInt()) {
    System.out.println(myObj.nextInt());
  } else {
    myObj.next(); // 如果当前标记不是整数,则读取并跳过它
  }
}

语法

其中之一:

public int nextInt()
public int nextInt(int radix)

参数

参数 描述
radix

可选。指定用于解析数字的基数。

基数指定了在数字中可以用来表示一个数位的符号数量。

技术细节

返回: 返回下一个标记所表示的整数值。
抛出:
  • InputMismatchException:如果标记不代表一个整数值
  • NoSuchElementException:如果扫描器中没有更多的标记
  • IllegalStateException:如果扫描器已经被关闭