如何使用Java中的toString方法将int数组转换为String

Jaa*_*nus 139 java arrays tostring

我正在尝试使用该toString(int[])方法,但我认为我做错了:

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString(INT [])

我的代码:

int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;

System.out.println(array.toString());
Run Code Online (Sandbox Code Playgroud)

输出是:

[I@23fc4bec
Run Code Online (Sandbox Code Playgroud)

我也尝试过像这样打印,但是:

System.out.println(new String().toString(array));  // **error on next line**
The method toString() in the type String is not applicable for the arguments (int[])
Run Code Online (Sandbox Code Playgroud)

我从更大更复杂的代码中获取了这些代码,但是如果需要我可以添加它.但这应该提供一般信息.

我正在寻找输出,就像在Oracle的文档中一样:

字符串表示由数组元素的列表组成,用方括号括起来("[]").相邻元素由字符","(逗号后跟空格)分隔.

Sbo*_*odd 278

你想要的是Arrays.toString(int[])方法:

import java.util.Arrays;

int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;

..      

System.out.println(Arrays.toString(array));
Run Code Online (Sandbox Code Playgroud)

Arrays.toString每种不同的原始java类型都有一个静态辅助方法; 这个int[]:

public static String toString(int[] a)
Run Code Online (Sandbox Code Playgroud)

返回指定数组内容的字符串表示形式.字符串表示由数组元素的列表组成,用方括号("[]")括起来.相邻元素由字符分隔", "(逗号后跟空格).元素将转换为字符串String.valueOf(int).返回"null"if a为null.


Eng*_*uad 37

System.out.println(array.toString());
Run Code Online (Sandbox Code Playgroud)

应该:

System.out.println(Arrays.toString(array));
Run Code Online (Sandbox Code Playgroud)


Has*_*asn 24

非常同意@Patrik M,但Arrays.toString的内容是它在输出中包含"[""]"",".因此,我只需使用正则表达式将它们从这样的outout中删除

String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
Run Code Online (Sandbox Code Playgroud)

现在你有一个String,可以解析回来java.lang.Number,例如,

long veryLongNumber = Long.parseLong(intStr);
Run Code Online (Sandbox Code Playgroud)

或者你可以使用java 8流,如果你讨厌正则表达式,

String strOfInts = Arrays
            .stream(intArray)
            .mapToObj(String::valueOf)
            .reduce((a, b) -> a.concat(",").concat(b))
            .get();
Run Code Online (Sandbox Code Playgroud)


Jes*_*fre 20

您可以使用java.util.Arrays:

String res = Arrays.toString(array);
System.out.println(res);
Run Code Online (Sandbox Code Playgroud)

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)


Fra*_*aro 14

数组上的toString方法只打印出你得到的内存地址.您必须循环遍历数组并自行打印每个项目

for(int i : array) {
 System.println(i);
}
Run Code Online (Sandbox Code Playgroud)