Java Scanner nextLong() 方法

定义和用法

nextLong() 方法返回下一个标记(token)所表示的长整型(long)数值。该标记必须表示一个在 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的整数。

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

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

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

什么是标记(token)?

标记是由分隔符(delimiter)与其他标记分隔开的一系列字符。默认的分隔符是一组空白字符,但可以通过 useDelimiter() 方法来更改。

实例

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

// 创建一个扫描器对象
Scanner myObj = new Scanner("A long is a number between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807");

// 打印扫描器中每个长整型数值
while (myObj.hasNext()) {
  if (myObj.hasNextLong()) {
    System.out.println(myObj.nextLong());
  } else {
    myObj.next(); // 跳过非长整型数值的标记
  }
}

语法

其中之一:

public long nextLong()
public long nextLong(int radix)

参数

参数 描述
radix

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

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

技术细节

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