我需要将String转换为ArrayList。
String accountNumberValue = "151616165132132";
我尝试执行此操作,但是它看起来像是将char
分别解析为String
和Integer
的硬编码:
ArrayList<Integer> accNumArray = accountNumberValue.chars()
.map((s)-> Integer.parseInt(String.valueOf(s)))
.collect(Collectors.toList());
有什么简单的方法吗?
答案 0 :(得分:2)
您可以这样做:
List<Integer> result=accountNumberValue
.chars() //Get IntStream from a string with char codes
.map(Character::getNumericValue) //Map to the actual int
.boxed() //Box the intstream
.collect(Collectors.toList()); //Collect
答案 1 :(得分:1)
您可以使用split
进行一次解析:
List<Integer> accNumArray =
Arrays.stream(accountNumberValue.split(""))
.map(Integer::parseInt)
.collect(Collectors.toList());
答案 2 :(得分:1)
也许没有太大的改进,但是您可以使用Character#getNumericValue
:
List<Integer> accNumArray = accountNumberValue.chars()
.map(c -> new Integer(Character.getNumericValue(c)))
.collect(Collectors.toList());