需要在java中的行尾删除多个逗号

时间:2014-11-15 17:50:51

标签: string

我试图删除文本文件中行尾的所有逗号,但保留其余的逗号。它最后可以有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");

2 个答案:

答案 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