我正在阅读一个有多行的文件,该文件内容的例子是:
Reader : INFO - LOOP with sapces : 1
Reader : INFO - LOOP with sapces : 2
Reader : INFO - LOOP with sapces : 17
Reader : INFO - LOOP with sapces : 201
我想要做的是让我的程序读取包含带空格的LOOP的行数。
这是我的代码:
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。
答案 0 :(得分:3)
我想要做的是让我的程序读取数量 包含带空格的LOOP的行
尝试这样。
if (scanner.nextLine().contains("LOOP with spaces"))
{ iterated++; }
此方法将读取整行。
String line=scanner.nextLine();
这将以文件方式返回下一个标记
next()
只能读取输入直到空格。
String token=scanner.next();
答案 1 :(得分:1)
Scanner#next()返回下一个元素,直到分隔符模式的下一个实例,默认为"\\s"
,因此它会读取下一个空格,而不是行。
如果您将hasNext()
和next()
更改为hasNextLine()
和nextLine()
,则分隔符是系统换行符,因此它会立即读取整行。< / p>