Java Scanner hasNext()方法与示例

扫描仪类hasNext()方法

语法:

    public boolean hasNext();
    public boolean hasNext(Pattern patt);
    public boolean hasNext(String patt);
  • hasNext()方法在java.util包中可用。

  • hasNext()方法用于检查此扫描程序的输入中是否存在其他令牌。

  • hasNext(Pattern patt)方法用于检查下一个完整令牌是否满足给定模式。

  • hasNext(String patt)方法用于检查下一个完整令牌是否满足从给定字符串形成的模式(patt)。

  • 这些方法在检查给定模式时可能会引发异常。
    IllegalStateException:如果未打开此扫描器,则可能引发此异常。

  • 这些是非静态方法,可通过类对象访问;如果尝试使用类名称访问这些方法,则会收到错误消息。

参数:

  • 在第一种情况下,hasNext()

    • 它不接受任何参数。

  • 在第二种情况下,hasNext(Pattern patt)

    • 模式patt –表示要读取的模式。

  • 在第二种情况下,hasNext(String patt)

    • 字符串patt –表示此字符串,表示要读取的模式。

返回值:

在所有情况下,方法的返回类型均为布尔值,

  • 在第一种情况下,当此扫描器的输入中存在任何其他令牌时,它返回true,否则返回false

  • 在第二种和第三种情况下,当此扫描器具有满足给定模式(patt)的任何其他令牌时,它将返回true

示例

//Java程序是演示示例
//的hasNext()扫描仪的方法

import java.util.*;
import java.util.regex.*;

public class HasNext {
 public static void main(String[] args) {
  String str = "Java Programming! 3 * 8= 24";

  //实例化扫描仪
  Scanner sc = new Scanner(str);

  //通过使用hasNext()方法是
  //检查该对象是否还有更多
  //是否令牌
  boolean status = sc.hasNext();
  System.out.println("sc.hasNext(): " + status);

  //通过使用hasNext(Pattern)方法是
  //检查给定的模式是否存在
  //是否在这个对象中
  status = sc.hasNext(Pattern.compile("...a"));
  System.out.println("sc.hasNext(Pattern.compile(...a)): " + status);

  //通过使用hasNext(String)方法是
  //检查给定的模式是否存在
  //是否由给定的字符串组成
  status = sc.hasNext("..0.a");
  System.out.println("sc.hasNext(..0.a): " + status);

  //扫描仪关闭
  sc.close();
 }
}

输出结果

sc.hasNext(): true
sc.hasNext(Pattern.compile(...a)): true
sc.hasNext(..0.a): false