我正在用一个简单的 Java 程序帮助我的姐妹们,但我被难住了。他们只学习了扫描仪类来读取文件内容,所以我认为他们应该使用扫描仪类。每行包含字母和可能的空格,我们希望将每一行存储在一个数组中。在其中一行包含类似以下内容之前,这工作正常且花花公子:
abcde f (the blank space after f should be read in as part of the line).
但是,scanner.nextLine()
似乎忽略了这最后的空格。我想我可以像这样将我的扫描器定界符设置为 \n
:
scanner.useDelimiter("\n")
然后从那里使用 scanner.Next()
,但这似乎仍然不起作用。我用谷歌搜索并查看了一些 stackoverflow 问题。这里的这个问题似乎表明使用扫描仪类不容易做到这一点:How to read whitespace with scanner.next()
有什么想法吗?我觉得我忽略了一个简单的方法。
这就是我阅读这些行的方式:
While(scanner.hasNextLine(){
String nextLine = scanner.nextLine();
使用上面的示例,我的字符串将显示为 abcde f
。它将摆脱最后的空白空间。
我也尝试过使用 hasNext
和 next
。
请原谅我的格式,我正在手机上编辑。
最佳答案
将您的文本文件保存为 ANSI 编码并重试。
右边的 scanner.nextLine()
将捕获行中的所有内容,包括空格。
scanner.next()
不会捕获空格,因为分隔符默认为 whitespace。
关于java - 使用 java 扫描器类读取最后的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31757244/