Java 将数字字符串转换为整数列表

Java 将数字字符串转换为整数列表,java,java-8,java-stream,Java,Java 8,Java Stream,我正在做一些关于java 8流特性的实践练习,因此考虑将知识应用于问题将数字字符串转换为整数列表 一个典型的测试看起来像 @Test public void testGetListofIntegersFromString(){ List<Integer> result = getIntegers("123456780"); assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,0),result); }

我正在做一些关于java 8流特性的实践练习,因此考虑将知识应用于问题将数字字符串转换为整数列表

一个典型的测试看起来像

 @Test
    public void testGetListofIntegersFromString(){
        List<Integer> result = getIntegers("123456780");
        assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,0),result);
    }
@测试
public void testGetListofIntegersFromString(){
列表结果=getIntegers(“123456780”);
assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,0),result);
}
我写了下面的方法

List<Integer> getIntegers(String value) {
       return IntStream.rangeClosed(0, value.length() - 1).map(i -> Integer.valueOf(value.substring(i,i+1))).collect(?????);
    }
列出GetInteger(字符串值){
返回IntStream.rangeClosed(0,value.length()-1).map(i->Integer.valueOf(value.substring(i,i+1))).collect(???);
}
我被用来获取整数列表的函数所困扰 我尝试了
collect(Collectors.toList())
它的给定编译错误

请建议我们是否可以按照不同的方法解决此问题。

使用String.chars()


编译错误是什么?我得到了一个类似的错误:(61109)java:methodcollect接口java.util.stream.IntStream不能应用于给定的类型;必需:
java.util.function.Supplier,java.util.function.ObjIntConsumer,java.util.function.BiConsumer
找到:
java.util.stream.Collector
原因:无法推断类型变量R(实际参数列表和形式参数列表长度不同)您是否尝试过使用而不是
map
map
方法在
IntStream
中不可用,我是否应该使用类
Stream
?我的错误,我现在看到了问题;您的流为
int
,不能用作列表的类型参数(您需要
Integer
)。因此,这个问题归结为所提出的问题。使用
boxed().collect(Collectors.toList())
应该可以。为什么不使用这个:c->c-48.@Win.ubuntu,因为
'0'
对读者来说不那么晦涩。我个人知道许多十进制和十六进制的ASCII码,但我想只有不到10%的程序员能够轻易回答“什么符号对应于ASCII码48”。@Tagir Valeev:对,即使我们知道码点,
48
也没有比
'0'
更大的优势。如果我们真的必须在代码中炫耀,我们使用<代码> C > C和017 ……您也可以考虑<代码>“123456780”.Car()。代码>
"123456780".chars().map(c -> c-'0').boxed().collect(Collectors.toList());