java - 将 String[] 转换为 int[](或将 ArrayList<String> 转换为 ArrayList<Integer>)的优雅方式

标签 java android arrays string arraylist

我正在构建一个 Android 应用程序,我在其中收到一条由数字组成的消息,以逗号分隔符分隔。示例输入为:

1,2,3,4,1,2,31,12,13,16

然后我收到这个并将其分配为一个字符串,然后使用 split 方法创建一个字符串[]:

String input = "1,2,3,4,1,2,31,12,13,16";
String[] arrayInput = input.split(",");

现在我有了输入的数组版本。接下来我要做的是将其转换为 int[] 以实现优雅编码的主要目的。

现在,我不能去:

int[] aGroup = Arrays.copyOfRange(arrayInput, 0, 3);

因为我会得到类型不匹配。为了变聪明,我尝试了:

int[] aGroup = Integer.valueOf(Arrays.copyOfRange(arrayInput, 0 ,3));

但是 Integer.valueOf() 需要单个字符串输入而不是多个数组元素。

我知道我可以像这样使用花哨的 for-each 循环:

List<Integer> arrayInputInt = new ArrayList<Integer>();
for(String entry : arrayInput){
    arrayInputInt.add(Integer.valueOf(entry));
}

或类似的东西。虽然这个 for-each 循环看起来干净优雅,但我想知道是否有更优雅、更赏心悦目的一个 String[] 到 int[] 转换器。

编辑

This question因为我的问题可能是这个问题的重复,所以被链接了。题目中的答案使用循环遍历String ArrayList中的每一个元素,尝试解析它们,然后将其转换为Integer并放入Integer ArrayList中。我正在寻找的解决方案是单行无循环使用类型的 String[] 到 int[] 转换。

最佳答案

在 lambda 之前,我通过创建转换器接口(interface)和 convertList 实用方法解决了这个问题,如下所示

 interface Converter<S,T>{ 
        T convert(S source); 
 }



  class ListConverter{ 
       static public <S,T> List<T> convertList(List<S> source,Converter<S,T> converter){ 
         List<T> target= new ArrayList<>();
         for (S s : source){ 
            target.add(converter(s)); 
         }
         return target; 
       }
   }

那么如果你想使用它,你可以这样做

List<Integer> ints = ListConverter.convertList(Arrays.asList(input.split(","),new Converter<String,Integer>(){
public Integer convert(String source){
return Integer.parseInt(source);

}
})

显然你不需要每次都实例化转换器,你可以为普通转换器创建单例

关于java - 将 String[] 转换为 int[](或将 ArrayList<String> 转换为 ArrayList<Integer>)的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36054531/

相关文章:

android - 如何在不使用任何外部 API 的情况下在 Android 上绘制图形?

C++ 返回数组

java - OracleCallableStatement registerOutParameter 不喜欢命名绑定(bind)

java - 如何将一列大对象转换为长文本?

java - 我应该创建一个新窗口还是修改旧窗口?

android - Android 上的路线 API

android - 从 fragment 中的按钮单击打开抽屉导航(Kotlin)

java - 除了 Java/Groovy 类之外,Groovy 脚本还有哪些用例?

python - 插入数组时保留numpy掩码

arrays - 使用一个数组索引另一个数组