gpt4 book ai didi

java - 使用 java.util.Scanner 从文件中读取字符串并使用换行符作为分隔符时,字符串表现得很奇怪

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:13 27 4
gpt4 key购买 nike

我尝试使用java.util.Scanner从文件中读取数据。当我尝试使用 \n 作为分隔符时,当我尝试向其中添加更多文本时,生成的字符串会出现奇怪的 react 。

我有一个名为“test.txt”的文件,并尝试从中读取数据。然后,我想向每个字符串添加更多文本,类似于打印 Hello World!:

String helloWorld = "Hello "+"World!";
System.out.println(helloWorld);.

我尝试使用 + 组合数据,尝试过 += 并尝试过 String.concat(),这以前对我有用,通常仍然有效。

我还尝试使用不同的分隔符,或者根本不使用分隔符,这两种分隔符都按我的预期工作,但我需要在换行符处分隔字符串。

最小可重现示例的 test.txt 文件包含以下文本(每行末尾有一个空格):

zero:
one:
two:
three:

void minimalReproducibleExample() throws Exception {  //May throw an exception if the test.txt file can't be found

String[] data = new String[4];

java.io.File file = new java.io.File("test.txt");
java.util.Scanner scanner = new java.util.Scanner(file).useDelimiter("\n");

for (int i=0;i<4;i++) {
data[i] = scanner.next(); //read the next line
data[i] += i; //add a number at the end of the String
System.out.println(data[i]); //print the String with the number
}

scanner.close();
}

我希望这段代码打印出这些行:

zero: 0
one: 1
two: 2
three: 3

我得到这个输出:

0ero:
1ne:
2wo:
three: 3

为什么使用 \n 作为分隔符时没有得到预期的输出?

最佳答案

test.txt 最有可能使用 Windows end of line representation \r\n 结果是 carriage return \r读取后仍然存在于 String 中。

确保 test.txt 使用 \n 作为行分隔符或在 Scanner.useDelimiter() 中使用 Windows \r\n

关于java - 使用 java.util.Scanner 从文件中读取字符串并使用换行符作为分隔符时,字符串表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168234/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com