如何在Java中将Array
内容转换为String
?
示例:
int[] myArray = {1,2,3};
输出必须是:
"123"
Arrays.toString(myArray)
返回的结果是:
"[1, 2, 3]"
而myArray.toString()
则返回:
[I@12a3a380
所以它们中没有一个起作用。有没有对应的函数?
这个问题看起来可能与(这个)类似,但实际上是不同的。我真正想要的是一个由所有数组条目组成的String
。
String joined = Arrays.stream(myArray)
.mapToObj(String::valueOf)
.collect(Collectors.joining(""));
System.out.println(joined);
传统的方法:
StringBuilder builder = new StringBuilder();
for (int value : myArray) {
builder.append(value);
}
... now use builder.toString()
与流解决方案相比,这里的解决方案不那么花哨,但另一方面,如果运行时性能很重要,这里的解决方案应该能击败任何其他方法。
Arrays.toString(myArray).replaceAll("\\D", "");
123
。
replaceAll
将第一个参数中正则表达式的所有正匹配替换为第二个参数的内容。 \D
是表示任何非数字的 regex。我将采用老派的方式,无论如何都可以成功,具体如下:
String myString = "";
for(int val : myArray)
{
myString += val;
}
System.out.println(myString); // To check the output of myString
会起作用!希望这能帮到您!
注意:即使在嵌入式设备中剥离了StringBuilder和其他一些类,这也可以在嵌入式Java中正常工作。
StringBuilder
。 - Henrik Aasted Sørensen
IntStream.of(myArray).mapToObj(Integer::toString).collect(joining(""))
。 - Andy TurnerIntStream.of(myArray)
内部只是调用了Arrays.stream
... 我不认为这是关于如何 打印 数组内容的重复问题,对我来说这看起来并不像是一个重复的问题。 - EugeneString.join
来处理String
数组。 - AxelH