将字符串数组转换为Java中的字符串

新手上路,请多包涵

我想要将字符串数组转换为字符串的 Java 代码。

原文由 Princeyesuraj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 484
2 个回答

Java 8+

使用 String.join()

 String str = String.join(",", arr);

请注意, arr 也可以是任何 Iterable (例如列表),而不仅仅是一个数组。

如果你有一个 Stream ,你可以使用加入收集器:

 Stream.of("a", "b", "c")
      .collect(Collectors.joining(","))

旧版(Java 7 及更早版本)

 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,因为您正在创建和丢弃与数组中的项目一样多的字符串对象。对于小型阵列,您可能不会真正注意到差异,但对于大型阵列,它可能会慢几个数量级。

原文由 Michael Berry 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 Apache 公共 StringUtils.join() 。它采用一个数组作为参数(并且还有 IterableIterator 参数的重载)并调用 toString() 参数(如果它不在每个元素上)获取每个元素的字符串表示形式。然后将每个元素字符串表示形式连接成一个字符串,如果指定的话,中间有一个分隔符:

 String joinedString = StringUtils.join(new Object[]{"a", "b", 1}, "-");
System.out.println(joinedString);

产生:

 a-b-1

原文由 krock 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题