Java Scanner hasNextInt() 方法

定义和用法

hasNextInt() 方法用于检查扫描器中的下一个标记(token)是否表示一个可以由 int 数据类型存储的数字,即介于 -2,147,483,648 和 2,147,483,647 之间的任意整数。

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

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

如果没有使用 radix 参数,那么扫描器会按照其自身的基数来解释数字,默认基数为 10,但可以通过 useRadix() 方法进行更改。

什么是标记(token)?

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

实例

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

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

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

// 注意:在实际应用中,请确保在不再需要扫描器时调用 myObj.close() 以关闭它。

运行实例

语法

其中之一:

public boolean hasNextInt()
public boolean hasNextInt(int radix)

参数

参数 描述
radix

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

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

技术细节

返回: 如果下一个标记表示一个 int 值,则返回一个布尔值 true
抛出: IllegalStateException - 如果扫描器已经被关闭。