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

问题描述 投票:0回答:3

我在Integer里面有一些ArrayLists

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

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

java list arraylist split
3个回答
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)这会将你的整数转换为String 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]

0
投票

从Java 8开始,您可以遍历for循环或foreach中的每个元素。然后在循环中,您可以将其转换为String

yourNumberAsString = String.valueOf(yourNumberInArray);

yourNumberAsString.charAt(0); 

你得到第一个数字的位置,100就是1.如果你在另一个数字中动态地执行,你的工作就完成了。


0
投票

您可以迭代数组,转换String中的Integer并使用Split方法获取String数组:

for(int i=0; i < al.size(); i++)
{
   String [] array = al[i].toString().split("");
   // do whatever you need with the array
}
© www.soinside.com 2019 - 2024. All rights reserved.