我试图删除文本文件中行尾的所有逗号,但保留其余的逗号。它最后可以有0,1,2或3个逗号。
这是我的代码,但它的抛出索引超出范围-1异常。我不明白为什么,因为我最后只删除了逗号。我也试过正则表达式,但它不起作用。
编辑:结果我在其中一个文件的末尾只有一个逗号。这就是为什么它只在该文件上提供例外而且它正在处理其他文件。愚蠢的错误..如果您认为不必要,请删除问题。
BufferedReader reader = null;
Writer writer = null;
try {
reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
"C:\\Users\\admin\\Desktop\\test.txt"))); //INPUT FILE
writer = new BufferedWriter(new FileWriter(
"C:\\Users\\admin\\Desktop\\fixedlist.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
//line.replaceAll(" ,$", ""); //tried this regex with no luck
while (line.endsWith(",")){
line = line.substring(0, line.length()-1);
}
String line1 = line.substring(0, line.indexOf(",")); //throws StringIndexOutOfBoundsException: String index out of range: -1
String line2 = line.substring(line.indexOf(",") + 1,
line.length());
//surround line1 and line2 with double quotes and write into file
writer.write("\"" + line1 + "\"" + "," + "\"" + line2 + "\""
+ "\n");
答案 0 :(得分:0)
这里有一个例子:Trim characters in Java
修剪其他角色然后空格。
答案 1 :(得分:0)
您可以使用Apache公共库org.apache.commons.lang.StringUtils 然后,您可以使用以下方法。
String line1 = StringUtils.stripEnd(line, ',') // strip chars end of the string
String line1 = StringUtils.stripStart(line, ',') // strip chars start of the string