在 Java 中将字符串数组转换为字符串
我想要将字符串数组转换为字符串的Java代码。
用:String.join()
String str = String.join(",", arr);
请注意,也可以是任何(如列表),而不仅仅是数组。arr
Iterable
如果有 ,则可以使用连接收集器:Stream
Stream.of("a", "b", "c")
.collect(Collectors.joining(","))
StringBuilder builder = new StringBuilder();
for(String s : arr) {
builder.append(s);
}
String str = builder.toString();
或者,如果您只需要数组的“调试样式”转储:
String str = Arrays.toString(arr);
请注意,如果您确实是旧版(Java 1.4及更早版本),则需要将其替换为 .StringBuilder
StringBuffer
用:TextUtils.join()
String str = TextUtils.join(",", arr);
您可以修改上述所有示例,具体取决于字符串之间所需的字符(如果有)。
不要使用字符串,只需在循环中用+=附加到它,就像这里的一些答案所示。这会通过屋顶发送 GC,因为您正在创建并丢弃数组中有多少个项目的字符串对象。对于小型数组,您可能并没有真正注意到差异,但对于大型数组,它可能会慢几个数量级。
使用Apache commons StringUtils.join()
。它采用数组作为参数(并且还具有 和 参数的重载),并调用每个元素(如果它不是 null)以获取每个元素的字符串表示形式。然后,如果指定了字符串表示形式,则将每个元素的字符串表示形式联接到一个字符串中,中间有一个分隔符:Iterable
Iterator
toString()
String joinedString = StringUtils.join(new Object[]{"a", "b", 1}, "-");
System.out.println(joinedString);
生产:
a-b-1