如何在Java

时间:2018-09-07 13:19:17

标签: java arrays string

如何用Java将Array内容转换为String

示例:

int[] myArray = {1,2,3};

输出必须为:

"123"

Arrays.toString(myArray)返回:

"[1, 2, 3]"

myArray.toString(),返回:

[I@12a3a380

所以它们都不起作用。有功能吗?

该问题可能与(this)类似,但实际上有所不同。我实际上是在要求由所有数组条目组成的String

4 个答案:

答案 0 :(得分:12)

String joined = Arrays.stream(myArray)
            .mapToObj(String::valueOf)
            .collect(Collectors.joining(""));

System.out.println(joined);   

答案 1 :(得分:7)

老式的方式:

StringBuilder builder = new StringBuilder();
for (int value : myArray) {
  builder.append(value);
}
... now use builder.toString()

与流解决方案相比花哨的少,但是另一方面:如果运行时性能很重要,那么这里应该击败任何其他方法。

答案 2 :(得分:6)

曲线球方法是从传统序列化方法之一的输出中删除所有非数字字符:

Arrays.toString(myArray).replaceAll("\\D", "");

在您的示例中得出123

replaceAll用第二个参数的内容替换第一个参数中正则表达式的所有正匹配。 \D等于regex,表示不是数字的任何内容。

答案 3 :(得分:2)

我要去老学校,无论什么时候,它都会工作:

String myString = "";
for(int val : myArray)
{
  myString += val;
}

System.out.println(myString); // To check the output of myString

会工作!希望这会有所帮助!

注意:这同样适用于嵌入式Java,其中为嵌入式设备剥离了StringBuilder和其他一些类。