Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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_Java.util.scanner - Fatal编程技术网

Java 检查扫描器中带有空格的子字符串

Java 检查扫描器中带有空格的子字符串,java,regex,java.util.scanner,Java,Regex,Java.util.scanner,我正在阅读一个有多行的文件,该文件的内容示例如下: Reader : INFO - LOOP with sapces : 1 Reader : INFO - LOOP with sapces : 2 Reader : INFO - LOOP with sapces : 17 Reader : INFO - LOOP with sapces : 201 我要做的是让我的程序读取包含带空格的循环的行数 这是我的密码: Scanner fileScan = new Scanner(file); in

我正在阅读一个有多行的文件,该文件的内容示例如下:

Reader : INFO - LOOP with sapces : 1
Reader : INFO - LOOP with sapces : 2
Reader : INFO - LOOP with sapces : 17
Reader : INFO - LOOP with sapces : 201
我要做的是让我的程序读取包含带空格的循环的行数

这是我的密码:

Scanner fileScan = new Scanner(file);
int iterated = 0;

while (fileScan.hasNext())
    {

        String somestring = fileScan.next();

        if (somestring.matches(".*LOOP\\swith\\sspaces.*"))
            { iterated++; }

    }
    }

    System.out.println("number of times found is: "+iterated);
我的问题是我的程序对于int迭代是0

我想做的是让我的程序读取 包含带空格的循环的行

像这样试试

if (scanner.nextLine().contains("LOOP with spaces"))
{ iterated++; }
  • 下一行()
此方法将读取整行

String line=scanner.nextLine();
  • 下一个()
这将返回文件中的下一个令牌
next()
只能读取输入直到空格

String token=scanner.next();
我想做的是让我的程序读取 包含带空格的循环的行

像这样试试

if (scanner.nextLine().contains("LOOP with spaces"))
{ iterated++; }
  • 下一行()
此方法将读取整行

String line=scanner.nextLine();
  • 下一个()
这将返回文件中的下一个令牌
next()
只能读取输入直到空格

String token=scanner.next();
返回分隔符模式下一个实例的下一个元素,该元素是默认值
“\\s”
,因此它读取下一个空格,而不是行

如果将
hasNext()
next()
更改为
hasNextLine()
nextLine()
,则分隔符是系统换行符,因此它将一次读取整行。

将下一个元素返回到分隔符模式的下一个实例,这是默认的
“\\s”
,所以它读取下一个空格,而不是行


如果将
hasNext()
next()
更改为
hasNextLine()
nextLine()
,则分隔符是系统换行符,因此它将一次读取整行。

我们可以知道为什么要使用
匹配项而不是
包含项吗?您搜索到的子字符串
与空格的循环是否有不同的形式,或者它是固定的?我们是否可以知道为什么要使用
匹配项
而不是
包含项
?搜索到的子字符串
与空格的循环可以有不同的形式,还是固定的?