当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Scanner hasNext()用法及代码示例


hasNext() 是 Java Scanner 类的一种方法,如果此扫描器的输入中有另一个标记,则返回 true。 Java Scanner hasNext() 方法共有三种不同类型,可以根据其参数进行区分。这些是:

  1. Java Scanner hasNext() 方法
  2. Java Scanner hasNext(字符串模式)方法
  3. 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() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。