我在代码中处理尾随逗号时遇到问题,我已尝试过该网站的一个解决方案,但仍然无法解决。任何帮助都会很棒。
这是我的代码。
String delimiter = "!@#$";
for ( String data1: overall.keySet() )
resultString += data1 + "," + overall.get(data1).toString() + System.getProperty("line.separator");
resultString = resultString.replace("," + delimiter , "");
这是我在这个网站上找到的那个,它只删除了最后一行的最后一个逗号。
resultString += data1 + "," + overall.get(data1).toString() + System.getProperty("line.separator");
resultString = resultString.replaceAll(",$", "");
我当前的输出是
a,b,
c,d,
e,f,
而不是
a,b
c,d
e,f
答案 0 :(得分:1)
如果每行都以逗号显示,则可以删除最后一个字符:
resultString = resultString.substring(0, resultString.length()-1)
答案 1 :(得分:1)
如果您只想从具有逗号分隔值的字符串中删除尾随逗号,可以尝试replaceAll
:
String str = "a,b,c,d,e,f,";
str = str.replaceAll(",$", "");
System.out.println(str);
它打印:
a,b,c,d,e,f
此解决方案还可以优雅地处理空列表(空字符串),而不是需要对此类案例进行特殊处理的lastIndexOf
/ substring
解决方案。在上面的解决方案中,$
是用于匹配字符串结尾的特殊符号。
如果您有一个String
数组,那么请在循环中使用它:
String[] stringsArray = new String[] {"a,b", "c,d", "e,f"};
for(String str : stringsArray) {
str = str.replaceAll(",$", "");
System.out.println(str);
}
输出是:
a,b
c,d
e,f
答案 2 :(得分:0)
您必须使用replaceAll()
代替replace()
- > resultString = resultString.replaceAll(",$", "");
因为replaceAll()
需要regex
,$
表示输入结束。
示例:
public static void main(String[] args) {
String s = "abc,def,";
System.out.println(s.replaceAll(",$", ""));
}
O / P:
abc,def
编辑:根据您的代码。
您应该将代码更改为:
for ( String data1: overall.keySet() ){
resultString += data1 + "," + overall.get(data1).toString() + System.getProperty("line.separator");
resultString = resultString.replaceAll(",$", "");
}