2010-10-01 18 views

回答

2

Java的java.util.Scanner休息了基於一些分隔符的輸入。默認情況下,分隔符模式與空格匹配,所以在這種情況下,您的掃描器輸入不會保持不變,您將從掃描器中獲得「====」,「Instructions」,「====」。

+0

您可以更改分隔符:'scan.useDelimiter( 「\ n」):' – sixtyfootersdude 2010-10-01 17:54:11

5

默認的掃描器分隔符是空格。正如kuropengin所說,hasNext(...)方法會照顧分隔符,因此它會將字符串拆分爲空格,並首先檢查====

儘管如此,您似乎在代碼中存在拼寫錯誤,因爲根本不使用定義的模式。您的代碼應該是:

String same = "==== Instructions ===="; 
Pattern title4 = Pattern.compile(same); 
Scanner scan = new Scanner(same); 
System.out.println(scan.hasNext(title4)); 

但是您要查找的是findInLine(...)方法。搜索匹配時它將忽略分隔符。下面的代碼

String same = "==== Instructions ===="; 
Pattern title4 = Pattern.compile(same); 
Scanner scan = new Scanner(same); 
System.out.println(scan.findInLine(title4)); 

將返回:

==== Instructions ====