如何删除我的字符串中的额外逗号?
这里是我的一个字符串存储和从列表中读取代码:如何删除我的字符串中的额外逗号?
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
for (String s : list)
{
listString += s + ", ";
}
System.out.println(listString);
它是在结尾处添加额外的逗号,我怎么能删除,做的代码行的最低数量。请帮忙!
的Java 8有一个不错的新StringJoiner
类,只是为这个...
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
StringJoiner sj = new StringJoiner(", ");
for (String s : list) {
sj.add(s);
}
listString = sj.toString();
System.out.println(listString);
如果你不够幸运,使用Java 8是哪些输出
one, two, three
(我觉得你的痛苦),那么你可以使用StringBuilder
,并从最后删除最后两个字符,如...
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
StringBuilder sb = new StringBuilder(64);
for (String s : list) {
sb.append(s).append(", ");
}
listString = sb.delete(sb.length() - 2, sb.length()).toString();
System.out.println(listString);
现在,很明显,你应该检查,看看是否造成StringBuilder
的长度足够长(有内容)做删除过,但我会离开,你;)
试试这个:
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
System.out.println(list.toString().replaceAll("\\]|\\[", ""));
输出:
one, two, three
'System.out.println(list);'也给出相同的输出。 –
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = "";
for (String s : list)
{
listString += ", " + s;
}
System.out.println(listString.replaceFirst(",",""));
您可以使用上面的代码。在开始处附加逗号,然后用空白字符串替换第一个逗号。
我认为你应该用“”替换“”,否则在开始时会有额外的空间 –
作为StringJoiner
和其他类的替代方法,您也可以使用第一个元素初始化listString
,在下一个元素前添加逗号并在索引1处开始迭代。您不能再使用该foreach。
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
String listString = list.get(0);
for (int i = 1;i<list.size();++i) {
listString += ", " + list.get(i);
}
System.out.println(listString);
这是一个简单的解决方案。
if (list.endsWith(",")) {
list= list.substring(0, list.length() - 1);
}
希望它有效。
这工作:
listString = listString.substring(0, listString.length() - 2);
System.out.println(listString);
此前的Java 8:
StringBuilder listString = new StringBuilder();
for (String id : list){
listString.append(id).append(",");
}
String result =listString.toString().replaceAll(",$", "");
正则表达式",$"
是检测最后一个逗号。
使用Java 8:
list.stream().collect(Collectors.joining(","));
到底会不会增加任何逗号。 –
使用['StringJoiner'](https://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html) – MadProgrammer