我已经碰壁了!
在 StackOverflow 上阅读了很多有趣的帖子后,我尝试了很多不同的解决方案,但似乎都不起作用。
假设我有一个 .txt 文件,我想用“XXX”替换换行符。我使用计数方法来计算文档中的行数。
Scanner reader = new Scanner("document.txt);
String [] textToArray = new String[count];
for(int i = 0; textToArray.length; i++){
String text = reader.nextLine();
text = text.replaceAll("\n", "XXX");
textToArray[i] = text;
}
然后我使用 for every 循环来打印文本。输出仍然与原始相同。
我还尝试过“\n”、“\r”、“\r”甚至“\r\n”。
最佳答案
阅读文档,即nextLine()
的javadoc :
Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
因此,您正在阅读每一行的文本,但不会看到 \r
和/或 \n
字符。
由于您要将每一行读入数组,因此您应该将 XXX
附加到每个值:
for (int i = 0; textToArray.length; i++) {
String text = reader.nextLine();
textToArray[i] = text + "XXX";
}
<小时/>
不相关
我还建议您读入List
,而不是数组。之后您可以随时转换为数组。
我希望您记得关闭扫描仪
,并显示模拟代码,因为new Scanner("document.txt")
将扫描文本document.txt
,而不是同名文件的内容。
String[] textToArray;
try (Scanner reader = new Scanner(new File("document.txt"))) {
List<String> textList = new ArrayList<>();
for (String text; (text = reader.nextLine()) != null; ) {
textList.add(text + "XXX");
}
textToArray = textList.toArray(new String[textList.size()]);
}
关于java - Scanner next() - 如何替换换行符 [java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41883785/