Java Scanner hasNext()方法与示例
扫描仪类hasNext()
方法
语法:
public boolean hasNext(); public boolean hasNext(Pattern patt); public boolean hasNext(String patt);
hasNext()方法在java.util包中可用。
hasNext()方法用于检查此扫描程序的输入中是否存在其他令牌。
hasNext(Patternpatt)方法用于检查下一个完整令牌是否满足给定模式。
hasNext(Stringpatt)方法用于检查下一个完整令牌是否满足从给定字符串形成的模式(patt)。
这些方法在检查给定模式时可能会引发异常。
IllegalStateException:如果未打开此扫描器,则可能引发此异常。
这些是非静态方法,可通过类对象访问;如果尝试使用类名称访问这些方法,则会收到错误消息。
参数:
在第一种情况下,hasNext(),
它不接受任何参数。
在第二种情况下,hasNext(Patternpatt),
模式patt–表示要读取的模式。
在第二种情况下,hasNext(Stringpatt),
字符串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