繁体   English   中英

将字符串转换为ArrayList <Integer> 与流

[英]Convert String into ArrayList<Integer> with stream

我需要将String转换为ArrayList。

String accountNumberValue = "151616165132132";

我尝试这样做,但它看起来像是硬编码,将char双重解析为StringInteger

    ArrayList<Integer> accNumArray = accountNumberValue.chars()
                         .map((s)-> Integer.parseInt(String.valueOf(s)))
                         .collect(Collectors.toList());

有什么简单的方法吗?

您可以这样做:

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

您可以使用split进行一次解析:

List<Integer> accNumArray = 
               Arrays.stream(accountNumberValue.split(""))
                     .map(Integer::parseInt)
                     .collect(Collectors.toList());

也许没有太大的改进,但是您可以使用Character#getNumericValue

List<Integer> accNumArray = accountNumberValue.chars()
    .map(c -> new Integer(Character.getNumericValue(c)))
    .collect(Collectors.toList());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM