是否有一种优雅的方式将String转换为Stream <Character>

Mic*_*ael 1 java java-8 java-stream

Map<Character, Integer> getMap(String target) { 
return target.chars().boxed()
                      .map(c -> Character.valueOf((char) c.intValue()))
                      .collect(Collectors.groupingBy(
                             c -> c, 
                             Collectors.reducing(0, c -> 1, Integer::sum)
                      ));
    }
Run Code Online (Sandbox Code Playgroud)

这条线target.chars().boxed().map(c -> Character.valueOf((char) c.intValue()))真的很难看,有没有更好的方法呢?

STa*_*efi 11

也许你错过了这个:

Stream<Character> charStream = target.chars().mapToObj(i->(char)i);
Run Code Online (Sandbox Code Playgroud)

chars()返回IntStream并且您需要做的唯一事情是通过强制转换将每一个映射到字符类型.