【发布时间】:2011-03-24 15:26:06
【问题描述】:
当你必须遍历一个集合并用分隔符分隔每个数据的字符串时,你总是会在最后得到一个额外的分隔符,例如
for (String serverId : serverIds) {
sb.append(serverId);
sb.append(",");
}
给出类似的东西:serverId_1, serverId_2, serverId_3,
我想删除 StringBuilder 中的最后一个字符(不转换它,因为在这个循环之后我仍然需要它)。
【问题讨论】:
-
如果通过连接字符串你的意思是“字符串连接”,它取决于字符串的数量和它们的长度。如果您要敲打大量字符串,而不管它们的大小如何,使用字符串生成器会更有效,因为字符串是不可变的。每次将字符串连接在一起时,您都会创建一个新的结果字符串(实际上是一个 char 数组)。字符串构建器本质上是一个 char 列表,在调用 toString() 方法之前不会成为不可变字符串。
-
如果您使用的是 Java 8,请使用
StringJoiner: stackoverflow.com/a/29169233/901641
标签: java stringbuilder