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()
,则分隔符是系统换行符,因此它将一次读取整行。我们可以知道为什么要使用匹配项而不是包含项吗?您搜索到的子字符串与空格的循环是否有不同的形式,或者它是固定的?我们是否可以知道为什么要使用匹配项而不是包含项?搜索到的子字符串与空格的循环可以有不同的形式,还是固定的?