hasNext() 是 Java Scanner 类的一种方法,如果此扫描器的输入中有另一个标记,则返回 true。 Java Scanner hasNext() 方法共有三种不同类型,可以根据其参数进行区分。这些是:
- Java Scanner hasNext() 方法
- Java Scanner hasNext(字符串模式)方法
- Java Scanner hasNext(Pattern pattern) 方法
1.Java扫描器的hasNext()方法:
它是一个 Scanner 类方法,如果此扫描器的输入中有另一个标记,则返回 true。此方法可能会在等待输入扫描时阻塞。
2.Java Scanner hasNext(String pattern)方法:
它是一个 Scanner 类方法,如果下一个标记与从指定字符串构造的模式匹配,则返回 true。
3.Java Scanner hasNext(模式模式)方法:
它是一个 Scanner 类方法,如果下一个完整标记与指定模式匹配,则返回 true。
用法
以下是 hasNext() 方法的声明:
public boolean hasNext()
public boolean hasNext(String pattern)
public boolean hasNext(Pattern pattern)
参数
数据类型 | 参数 | 描述 | 必需/可选 |
---|---|---|---|
String | pattern | 它是一个字符串,指定要扫描的模式。 | Required |
Pattern | pattern | 它是扫描指定字符串的模式。 | Required |
返回
方法 | 返回 |
---|---|
hasNext() | 当且仅当此扫描器具有另一个令牌时,此方法才返回 true。 |
hasNext(String pattern) | 当且仅当此扫描器具有与指定模式匹配的另一个标记时,此方法才返回 true。 |
hasNext(Pattern pattern) | 当且仅当此扫描器具有与指定模式匹配的另一个标记时,此方法才返回 true。 |
异常
IllegalStateException - 如果在扫描器关闭后调用完成,此方法会抛出异常。
兼容版本
Java 1.5 及以上
例子1
import java.util.*;
public class ScannerHasNextExample1 {
public static void main(String args[]){
//Create Scanner object
Scanner scan = new Scanner("Hello World!");
//Printing the delimiter used
System.out.println("Delimiter:" + scan.delimiter());
//Print the Strings
while (scan.hasNext()) {
System.out.println(scan.next());
}
//Close the scanner
scan.close();
}
}
输出:
Delimiter:\p{javaWhitespace}+ Hello World!
例子2
import java.util.*;
public class ScannerHasNextExample2 {
public static void main(String args[]){
String s = "Hello, This is JavaTpoint.";
//Create scanner Object and pass string in it
Scanner scan = new Scanner(s);
//Check if the scanner has a token
System.out.println("Result:" + scan.hasNext());
//Print the string
System.out.println("String:" +scan.nextLine());
//Check if the scanner has a token after printing the line
System.out.println("Final Result:" + scan.hasNext());
//Close the scanner
scan.close();
}
}
输出:
Result:true String:Hello, This is JavaTpoint. Final Result:false
例子3
import java.util.*;
public class ScannerHasNextExample3 {
public static void main(String args[]){
//Create Scanner object
Scanner scan = new Scanner("Program:Java;Python;Android");
//Initialize the String pattern
String pattern = "Program:.*";
//Check if pattern satisfies the String content
if(scan.hasNext(pattern)){
System.out.println("Pattern found");
}
else{
System.out.println("Pattern not found");
}
scan.close();
}
}
输出:
Pattern found
示例 4
import java.util.*;
public class ScannerHasNextExample4 {
public static void main(String args[]){
String str = "JavaTpoint.com 15 + 15 = 18.0";
Scanner scanner = new Scanner(str);
//Checking scanner's next token matches "c"
System.out.println("Result:"+scanner.hasNext("JavaTpoint.com"));
//Checking scanner's next token matches "="
System.out.println("Result:"+scanner.hasNext("="));
//Print the rest of the string
System.out.println("Rest of String:"+scanner.nextLine());
scanner.close();
}
}
输出:
Result:true Result:false Rest of String:JavaTpoint.com 15 + 15 = 18.0
例 5
import java.util.*;
import java.util.regex.Pattern;
public class ScannerHasNextExample5 {
public static void main(String args[]){
//Create Scanner object
Scanner scan = new Scanner("Names:Raju1;Pawan;Suresh");
//Declare the delimiter
scan.useDelimiter(";");
/*Initialize the String pattern which signifies that the String
token contains characters of the alphabet only*/
Pattern pattern = Pattern.compile("[A-Za-z]*");
while(scan.hasNext()){
//Check if the token consists of declared pattern
if(scan.hasNext(pattern)){
System.out.println(scan.next());
}
else
scan.next();
}
scan.close();
}
}
输出:
Pawan Suresh
相关用法
- Java Scanner hasNext()用法及代码示例
- Java Scanner hasNextFloat()用法及代码示例
- Java Scanner hasNextShort()用法及代码示例
- Java Scanner hasNextByte()用法及代码示例
- Java Scanner hasNextBoolean()用法及代码示例
- Java Scanner hasNextDouble()用法及代码示例
- Java Scanner hasNextLong()用法及代码示例
- Java Scanner hasNextLine()用法及代码示例
- Java Scanner hasNextBigInteger()用法及代码示例
- Java Scanner hasNextInt()用法及代码示例
- Java Scanner hasNextBigDecimal()用法及代码示例
- Java Scanner reset()用法及代码示例
- Java Scanner locale()用法及代码示例
- Java Scanner nextByte()用法及代码示例
- Java Scanner toString()用法及代码示例
- Java Scanner findWithinHorizon()用法及代码示例
- Java Scanner useRadix()用法及代码示例
- Java Scanner delimiter()用法及代码示例
- Java Scanner nextLong()用法及代码示例
- Java Scanner radix()用法及代码示例
注:本文由纯净天空筛选整理自 Java Scanner hasNext() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。