如何将长数组转换为字符串数组?

时间:2011-07-07 11:25:52

标签: java android arrays

我从ListView获取List.getCheckedItemIds的已检查项ID,返回long数组,现在如何将此数组转换为String数组?

long [] long_list = ProcessList.getCheckedItemIds();

6 个答案:

答案 0 :(得分:7)

String[] string_list = new String[long_list.length];

for(int i = 0; i < long_list.length; i++){
    string_list[i] = String.valueOf(long_list[i]);
}

答案 1 :(得分:2)

您可以像这样使用 org.apache.commons.lang.StringUtils

String[] string_list = StringUtils.join(long_list, ",").split(",");

答案 2 :(得分:2)

您可以利用apache的BeanUtils进行数组转换,而无需像下面那样自己进行迭代。

Long[] longArrays= (Long[]) ConvertUtils.convert(stringArrays, Long[].class);

答案 3 :(得分:2)

几年前,这个问题可能被认为是不必要的,但是考虑到Java领域最近在新兴的 Stream API 方面的进展,现在值得重新考虑一下。


无需依赖任何第三方API,您可以使用内置的 Stream API 在Java 1.8及更高版本中进行数组操作。

您现在可以轻松使用

String[] yourStringArray = Arrays.stream(yourLongArray).mapToObj(String::valueOf).toArray();

如果您打算打印yourStringArray,则可以使用来将其转换为字符串

String str = Arrays.toString(yourStringArray);


****
对我们来说幸运的是,Arrays.toString()可在所有类型的数组上运行,因此整个过程可以简化为

String str = Arrays.toString(yourLongArray);

这不是清洁工吗?

答案 4 :(得分:1)

您可以创建一个新的String数组,并将long数组的值逐个传递给字符串数组:

String[] s=new  String[long_list.length];
for(int i=0;i<long_list.length;i++)
{
s[i]=String.valueOF(long_list[i]);
}

抱歉错误。我已经更新了代码。

答案 5 :(得分:1)

或者使用Java 8 +,

Object[] array = ...; // or i.e. Long[] array
String[] s = Arrays.stream(array).map(String::valueOf).toArray(String[]::new);