如何将多个整数值拆分为索引数组

时间:2018-09-05 12:48:05

标签: java list arraylist split

我在Integer里面有ArrayList

ArrayList<Integer> al = new AraayList<Integer>();
al.add(100);
al.add(211);

现在,我想将ArrayList中的值拆分为一个数组。假设100ArrayList中的第一个值,则对应的数组应包含100

3 个答案:

答案 0 :(得分:3)

如果您使用的是Java 8+,则可以通过以下技巧使用流:

List<Integer> result = al.stream()
        .map(String::valueOf) 
        .flatMap(s -> Arrays.stream(s.split("")))
        .map(Integer::valueOf) 
        .collect(Collectors.toList());

详细信息

  • .map(String::valueOf),这会将您的整数转换为字符串eg. 100 => "100"
  • .flatMap(s -> Arrays.stream(s.split("")))这将通过""的拆分创建一个流。 "100" => ["1", "0", "0"]
  • .map(Integer::valueOf)会将每个String解析为Integer例如。 ["1", "0", "0"] => [1, 0, 0]
  • .collect(Collectors.toList());,这会将所有结果收集在一个列表中,例如[1, 0, 0, 2, 1, 1]

答案 1 :(得分:0)

您可以遍历for循环或foreach自Java 8开始的每个元素。然后在循环中可以使用

将其转换为String。
yourNumberAsString = String.valueOf(yourNumberInArray);

使用

yourNumberAsString.charAt(0); 

您获得的第一位数字的位置为100,该数字为1。如果在另一个for循环中动态进行此操作,则您的工作已完成。

答案 2 :(得分:0)

您可以遍历数组,将 Integer 转换为 String ,然后使用 Split 方法获取 String 数组:

for(int i=0; i < al.size(); i++)
{
   String [] array = al[i].toString().split("");
   // do whatever you need with the array
}