【发布时间】:2014-03-08 18:45:41
【问题描述】:
在 Java 中,给定数组
int a[] = {1,2,3}
我可以通过Arrays.toString(a)得到
"[1,2,3]"
有没有一种同样方便的方法可以将此字符串返回到它的先行数组?
还是我必须遍历整个split、for-loop、parseInt 的东西?
更新
感谢大家的所有想法。我推出了自己的功能
String src[] = data.split("\\D+");//data is intArrayAsString: [1,2,3]
int[] nums = new int[src.length - 1];
int ndx = 0;
for (String s : src) {
try {
nums[ndx] = Integer.parseInt(s);
ndx++;
} catch (NumberFormatException e) {
}
}
return nums;
注意:traverse 这个词似乎让一些人失望了。 “遍历”是指从字符串到 int 数组来回移动的能力。
【问题讨论】:
-
对于遍历列表,您可以使用 listIterator
ListIterator<Integer> iterator = Arrays.asList(a);或者我没有测试过new StringBuilder(Arrays.toString(a)).reverse().toString();--> 但您将拥有]3,2,1[ -
使用
Integer(int wrapper) 而不是int,所以它有toString()方法,可能会对你有所帮助。 -
可以选择 JSON 吗? ;-)
-
理论上可以将字符串解析为 JSON 并获得 Integer 对象的 Map。没有完全扭转局面。
-
(应该注意的是,如果打算将此数据用于通过网络发送/接收之类的操作,那么 JSON 是首选格式。JSON 编码器将生成与 @987654333 基本相同的字符串@ 用于
int的数组,并且还将无缝处理其他更复杂的数据布局。解码是包的一部分。)