[英]Java: Copy array of Integers into Array of Strings
考虑一个其签名包含一个Integer
数组的方法:
public static void parse(Integer[] categories)
parse
需要调用其他方法,该方法需要一个字符串数组。 所以我需要将Integer[]
转换为String[]
。
例如, [31, 244] ⇒ ["31", "244"]
。
我已经尝试过在这里描述的Arrays.copyOf:
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
但是得到了ArrayStoreException
。
我可以迭代和转换每个元素,但是还有更优雅的方法吗?
如果您不尝试避免循环,则可以执行以下操作:
String[] strarr = new String[categories.length];
for (int i=0; i<categories.length; i++)
strarr[i] = categories[i] != null ? categories[i].toString() : null;
编辑:我承认这是一个黑客,但它无需迭代原始Integer数组即可工作:
String[] strarr = Arrays.toString(categories).replaceAll("[\\[\\]]", "").split("\\s*,\\s*");
您可以通过遍历Int-Array并将每个元素保存为带有.toString()
的String-Array来手动完成此操作:
for(i = 0; i < intArray.length(); i++) {
stringArray[i] = intArray[i].toString()
}
(未经测试,但是这样的东西应该是您正在寻找的东西)
嗯,请阅读您的评论。 抱歉,我不知道更简单或更优雅的方法。
我不认为有一种方法:
为此使用循环:
String strings[] = new String[integerarray.length];
for(int i = 0; i<integerarray.length;++i)
{
strings[i] = Integer.toString(integerarray[i]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.