我正在尝试从字符串中删除一些不需要的字符。我正在使用.txt文件,我想删除文件中的所有逗号。当我使用deletCharAt()时,它会删除多个char。 以下是.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”删除为一个字符,我不知道为什么。非常感谢任何帮助。
答案 0 :(得分:5)
您正在从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
以获取示例代码。你可以很容易地改变它......