繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM