【发布时间】:2016-04-16 20:55:52
【问题描述】:
我正在尝试使用带有分隔符等于“”的scanner.next() 来简单地读取文本文件中的单词,但扫描仪包含带有令牌的换行符/回车符。
我已经在互联网上搜索了这个问题的一个很好的例子,但没有找到,所以我把它贴在这里。我在 SO 上找不到另一个类似的问题。我还查看了有关扫描仪和模式 (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html) 的文档,但我仍然找不到解决此问题的方法。
文本文件:
这是一个测试
看看这个是否正常
好的!
代码:
int i = 0;
String string;
try(Scanner scanner = new Scanner(new File(filename))) {
scanner.useDelimiter(" ");
while(scanner.hasNext())
{
string = scanner.next();
System.out.println(i++ + ": " + string);
}
}catch(IOException io_error) {
System.out.println(io_error);
}
输出:
0:这个
1:是
2:一个
3:测试
到
4:见
5: 如果1
6:这个,
7: 是
8:工作
好的!
如您所见,#3 和#8 有两个单词,由换行符分隔。 (我知道我可以将它们分成两个单独的字符串。)
【问题讨论】: