當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。