只需获取最后一个字符出现的位置即可。
for(String serverId : serverIds) {
sb.append(serverId);
sb.append(",");
}
sb.deleteCharAt(sb.lastIndexOf(","));
由于lastIndexOf
将执行反向搜索,并且您知道它将在第一次尝试中找到,因此此处性能不会成为问题。
编辑
由于我一直在回答自己的问题(感谢folk),因此值得考虑:
从Java 8开始,使用StringJoiner会更清晰易懂。它具有一种用于简单分隔符的方法,以及用于前缀和后缀的重载。
示例取自此处:example
使用简单分隔符的示例:
StringJoiner mystring = new StringJoiner("-");
// Joining multiple strings by using add() method
mystring.add("Logan");
mystring.add("Magneto");
mystring.add("Rogue");
mystring.add("Storm");
System.out.println(mystring);
输出:
洛根·马涅托·罗格·斯托姆
带后缀和前缀的示例:
StringJoiner mystring = new StringJoiner(",", "(", ")");
// Joining multiple strings by using add() method
mystring.add("Negan");
mystring.add("Rick");
mystring.add("Maggie");
mystring.add("Daryl");
System.out.println(mystring);
输出量
(Negan,Rick,Maggie,Daryl)