gpt4 book ai didi

java - deleteCharAt() 从 Java 中的字符串中删除一个以上的字符

转载 作者:行者123 更新时间:2023-11-30 06:21:49 26 4
gpt4 key购买 nike

我正在尝试从字符串中删除一些不需要的字符。我正在阅读一个 .txt 文件,我想删除文件中的所有逗号。当我使用 deletCharAt() 时,它会删除多个字符。以下是 .txt 文件的示例:

1,2,0
3,4,5
6,7,8

这是我的代码:

public String loadStartBoard(String filename) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));

try {

StringBuilder sb = new StringBuilder();
String line = reader.readLine();

while (line != null) {
sb.append(line);
sb.append("\n");
sb.deleteCharAt(1);
//sb.deleteCharAt(2);
//sb.deleteCharAt(5);
//sb.deleteCharAt(6);
//sb.deleteCharAt(9);
//sb.deleteCharAt(10);

line = reader.readLine();

}
startState = sb.toString();
return startState;

} finally {
reader.close();
}
}

这给出了输出:

103,4,5
6,7,8

所以 sb.deleteCharAt(1) 将“,2”作为一个字符删除,我不确定为什么。非常感谢任何帮助。

最佳答案

您正在从 StringBuffer 中删除,因此您不断删除导入的第一行中的第二个字符。

实现此目的的最简单方法可能是使用第二个 StringBuilder:

    BufferedReader reader = new BufferedReader(new StringReader("1,2,0\n3,4,5\n6,7,8"));

StringBuilder sb = new StringBuilder();
String line = reader.readLine();

StringBuilder currentLine = new StringBuilder();

while (line != null)
{
currentLine.delete(0, currentLine.capacity());
currentLine.append(line);
currentLine.deleteCharAt(1);

sb.append(currentLine.toString());
sb.append("\n");

line = reader.readLine();

}
System.out.println(sb.toString());

请注意,我已将示例代码的 FileReader 更改为 StringReader。您可以轻松地将其改回...

关于java - deleteCharAt() 从 Java 中的字符串中删除一个以上的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024520/

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