假设,我有一个数组:
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7};
我需要使用分隔符连接它的元素,例如 " - "
,结果我应该得到这样的字符串:
"1 - 2 - 3 - 4 - 5 - 6 - 7"
我怎么能这样做?
PS: 是的,我知道 这个 和 这个 帖子,但它的解决方案不适用于基元数组。
原文由 spirit 发布,翻译遵循 CC BY-SA 4.0 许可协议
Java 8 解决方案是这样的:
Stream.of(1,2,3,4).map(String::valueOf).collect(Collectors.joining("-"))
原文由 user2935131 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
这是我想出的。有几种方法可以做到这一点,它们取决于您使用的工具。
使用来自 Common Lang 的
StringUtils
和ArrayUtils
:您不能只使用
StringUtils.join(arr, " - ");
因为StringUtils
没有该方法的重载版本。虽然,它有方法StringUtils.join(int[], char)
。适用于任何 Java 版本,从 1.2 开始。
使用 Java 8 流:
是这样的:
事实上,有很多变体可以使用流来实现结果。
Java 8 的方法
String.join()
仅适用于字符串,因此要使用它,您仍然必须将int[]
转换为String[]
。如果您坚持使用没有库的 Java 7 或更早版本,您可以编写自己的实用程序方法:
比你能做的: