Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:模式,扫描器示例不起作用_Java_Regex_String - Fatal编程技术网

Java:模式,扫描器示例不起作用

Java:模式,扫描器示例不起作用,java,regex,string,Java,Regex,String,我很好奇为什么这个模式不起作用 String same = "==== Instructions ===="; Pattern title4 = Pattern.compile(same); Scanner scan = new Scanner(same); System.out.println(scan.hasNext(same)); 返回: false Java的Java.util.Scanner根据某个分隔符分解其输入。默认情况下,分隔符模式与空白相匹配,因此在本例中,您对扫描仪的输入

我很好奇为什么这个模式不起作用

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

false

Java的
Java.util.Scanner
根据某个分隔符分解其输入。默认情况下,分隔符模式与空白相匹配,因此在本例中,您对扫描仪的输入不会保持完整,您将从扫描仪获得“==”、“指令”、“==”。

默认扫描仪分隔符为空白。正如kuropengin所说,该方法负责分隔符,因此它将在空白处分割字符串,并首先检查
===

尽管如此,您的代码似乎有一个输入错误,因为您根本没有使用定义的模式。您的代码应该是:

String same = "==== Instructions ====";
Pattern title4 = Pattern.compile(same);
Scanner scan = new Scanner(same);
System.out.println(scan.hasNext(title4));
但你要找的是方法。搜索匹配项时,它将忽略分隔符。下面的代码

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

==== Instructions ====

您可以更改分隔符:
scan.useDelimiter(“\n”):