首页 > 解决方案 > 将单词转换为字符整数表示的总和

问题描述

我正在尝试将一个单词转换foo为单个字符的整数编码的总和。这将计算为 102 + 111 + 111 等于 324。我正在尝试使用来自字符列表的流来实现这一点:

String word = "foo";

Arrays
   .asList(word.toCharArray())
   .stream()
   .mapToInt (letter -> Character.getNumericValue(letter))
   .sum();

我得到的错误是:

no suitable method found for getNumericValue(char[])

我将如何解决这个错误,或者有更好的方法来完成这个?

标签: javajava-stream

解决方案


使用官方的方式,而不是某种“我想要一个Stream,但我只能从一个List中获取一个Stream,所以我必须将String转换成一个List”。

String word = "foo";

word.codePoints().sum()

String.codePoints()返回流中代码点的 IntStream。
请注意,并非每个字符都可以用单个s 表示char,例如表情符号需要两个chars。


推荐阅读