2010-10-01 46 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 ====