gpt4 book ai didi

Java:使用分隔符连接基元数组

转载 作者:IT老高 更新时间:2023-10-28 20:30:41 28 4
gpt4 key购买 nike

假设,我有一个数组:

int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7};

我需要使用分隔符连接它的元素,例如,"- ",所以结果我应该得到这样的字符串:

"1 - 2 - 3 - 4 - 5 - 6 - 7"

我该怎么做?

PS:是的,我知道 thisthis帖子,但它的解决方案不适用于原始数组。

最佳答案

这就是我想出的。有几种方法可以做到这一点,它们取决于您使用的工具。


使用 Common Lang 中的 StringUtilsArrayUtils :

int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7};
String result = StringUtils.join(ArrayUtils.toObject(arr), " - ");

您不能只使用 StringUtils.join(arr, "- "); 因为 StringUtils 没有该方法的重载版本。虽然,它有方法 StringUtils.join(int[], char).

适用于任何 Java 版本,从 1.2 开始。


使用 Java 8 流:

类似这样的:

int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7};
String result = Arrays.stream(arr)
.mapToObj(String::valueOf)
.collect(Collectors.joining(" - "));

事实上,使用流来实现结果有很多变化。

Java 8 的方法 String.join() 仅适用于字符串,因此要使用它,您仍然需要将 int[] 转换为 String[]

String[] sarr = Arrays.stream(arr).mapToObj(String::valueOf).toArray(String[]::new);
String result = String.join(" - ", sarr);

如果您坚持使用没有库的 Java 7 或更早版本,您可以编写自己的实用程序方法:

public static String myJoin(int[] arr, String separator) {
if (null == arr || 0 == arr.length) return "";

StringBuilder sb = new StringBuilder(256);
sb.append(arr[0]);

//if (arr.length == 1) return sb.toString();

for (int i = 1; i < arr.length; i++) sb.append(separator).append(arr[i]);

return sb.toString();
}

比你能做的:

int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7};
String result = myJoin(arr, " - ");

关于Java:使用分隔符连接基元数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38425623/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com