Scanner类跳过空格

Cas*_*per 10 java arrays

我使用嵌套Scanner循环从字符串行(从文本文件)中提取数字,如下所示:

String str = testString;            
Scanner scanner = new Scanner(str); 
while (scanner.hasNext()) {
    String token = scanner.next();
    // Here each token will be used
}
Run Code Online (Sandbox Code Playgroud)

问题是这段代码会跳过所有空格" ",但我也需要使用那些"空格".那么可以Scanner返回空格还是我需要使用别的东西?

我的文本文件可能包含以下内容:

0
011
abc
d2d

sdwq

sda
Run Code Online (Sandbox Code Playgroud)

那些空白行" "每个包含1 个,这些" "是我需要返回的.

Hov*_*els 12

使用扫描仪hasNextLine()nextLine()方法,您将找到您的解决方案,因为这将允许您捕获空白或空白行.


Ank*_*thi 5

默认情况下,扫描仪使用空格来分隔标记。

使用Scanner#nextLine方法,使扫描仪前进到当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。

要使用不同的标记分隔符,请调用 useDelimiter(),并指定正则表达式。例如,假设您希望标记分隔符为逗号,并且可以选择后跟空格。你会调用,

scanner.useDelimiter(",\\s*");
Run Code Online (Sandbox Code Playgroud)

http://docs.oracle.com/javase/tutorial/essential/io/scanning.html了解更多信息