我正在尝试使用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());
输出结果为:
[I@23fc4bec
我也试过这样打印,但是:
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[])
我从更大更复杂的代码中获取此代码,但我可以根据需要添加它。但这应该提供一般信息。
我正在寻找输出,就像在Oracle的文档中那样:
字符串表示由数组元素的列表组成,用方括号括起来(“[]”)。相邻元素由字符“,”(逗号后跟空格)分隔。
答案 0 :(得分:269)
你想要的是Arrays.toString(int[])
方法:
import java.util.Arrays;
int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;
..
System.out.println(Arrays.toString(array));
每种不同的原始java类型都有一个静态Arrays.toString
辅助方法; int[]
says this的那个:
public static String toString(int[] a)
返回指定数组内容的字符串表示形式。字符串表示由数组元素的列表组成,用方括号括起来(
"[]"
)。相邻元素由字符", "
(逗号后跟空格)分隔。由String.valueOf(int)
将元素转换为字符串。如果"null"
为空,则返回a
。
答案 1 :(得分:35)
System.out.println(array.toString());
应该是:
System.out.println(Arrays.toString(array));
答案 2 :(得分:20)
非常同意@Patrik M,但Arrays.toString的内容是它包含" [" 和"]&#34 ; 和输出中的"," 。因此,我只是使用正则表达式将它们从outout中移除,就像这样
String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
现在你有了一个可以解析回java.lang.Number
的字符串,例如,
long veryLongNumber = Long.parseLong(intStr);
或者你可以使用java 8流,如果你讨厌正则表达式,
String strOfInts = Arrays
.stream(intArray)
.mapToObj(String::valueOf)
.reduce((a, b) -> a.concat(",").concat(b))
.get();
答案 3 :(得分:19)
您可以使用java.util.Arrays:
String res = Arrays.toString(array);
System.out.println(res);
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
答案 4 :(得分:13)
数组上的toString方法只打印出你得到的内存地址。 你必须遍历数组并自行打印出每个项目
for(int i : array) {
System.println(i);
}
答案 5 :(得分:3)
使用我描述的here实用程序,您可以更好地控制阵列的字符串表示形式。
String[] s = { "hello", "world" };
RichIterable<String> r = RichIterable.from(s);
r.mkString(); // gives "hello, world"
r.mkString(" | "); // gives "hello | world"
r.mkString("< ", ", ", " >"); // gives "< hello, world >"
答案 6 :(得分:3)
此函数以字符串形式返回一个int数组,如“6097321041141011026”
private String IntArrayToString(byte[] array) {
String strRet="";
for(int i : array) {
strRet+=Integer.toString(i);
}
return strRet;
}
答案 7 :(得分:0)
这是一个从字符串列表到单个字符串,再返回字符串列表的示例。
编译:
class SillyArray extends ArrayObject {
public function __construct($a)
{
foreach($a as $key => $value) {
if (is_array($value)) {
$a[$key] = new SillyArray($value);
}
}
parent::__construct($a);
}
public function __toString() {
$result = parent::offsetGet(0);
if (isset($result)) {
return (string)$result;
}
return "";
}
}
$a = new SillyArray(
array(0 => array(
0 => 3,
'name' => 'there'
))
);
echo $a[0];
echo $a[0][0];
echo $a[0]['name'];
运行:
Initial list: "abc" "def" "ghi" "jkl" "mno" As single string: "[abc, def, ghi, jkl, mno]" Reconstituted list: "abc" "def" "ghi" "jkl" "mno"
源代码:
$ javac test.java
$ java test