Java:将整数数组复制到字符串数组中

时间:2012-02-27 11:58:38

标签: java arrays string integer

考虑一种签名包含Integer数组的方法:

public static void parse(Integer[] categories)

parse需要调用另一个方法,该方法需要一个字符串数组。所以我需要将Integer[]转换为String[]

例如,[31, 244] ⇒ ["31", "244"]

我尝试过Arrays.copyOf描述here

String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);

但得到了ArrayStoreException

我可以迭代并转换每个元素,但是有更优雅的方式吗?

3 个答案:

答案 0 :(得分:3)

如果你不想避免循环,那么你可以简单地做:

String[] strarr = new String[categories.length];
for (int i=0; i<categories.length; i++)
     strarr[i] = categories[i] != null ? categories[i].toString() : null;

编辑:我承认这是一个 hack ,但它可以在不重复原始整数数组的情况下运行:

String[] strarr = Arrays.toString(categories).replaceAll("[\\[\\]]", "").split("\\s*,\\s*");

答案 1 :(得分:1)

您可以通过迭代Int-Array并将每个元素保存到附加了.toString()的String-Array中来手动完成:

for(i = 0; i < intArray.length(); i++) {
    stringArray[i] = intArray[i].toString()
}

(未经测试,但这样的事情应该是你要找的东西)

嗯,嗯,看看你的评论。我不知道这样做更容易或更优雅,抱歉。

答案 2 :(得分:1)

我认为没有一种方法:

使用循环,如:

String strings[] = new String[integerarray.length];

for(int i = 0; i<integerarray.length;++i)
{
     strings[i] = Integer.toString(integerarray[i]);
}