我使用嵌套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 个,这些" "是我需要返回的.
默认情况下,扫描仪使用空格来分隔标记。
使用Scanner#nextLine方法,使扫描仪前进到当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。
要使用不同的标记分隔符,请调用 useDelimiter(),并指定正则表达式。例如,假设您希望标记分隔符为逗号,并且可以选择后跟空格。你会调用,
scanner.useDelimiter(",\\s*");
Run Code Online (Sandbox Code Playgroud)
从http://docs.oracle.com/javase/tutorial/essential/io/scanning.html了解更多信息