【发布时间】:2020-07-28 22:30:32
【问题描述】:
我正在尝试将List 中每个单词的首字母大写。目前,我得到一个“此处不期望 Lambda 表达式”,并且我被告知我无法将字符串转换为 void,我不想这样做。我正在尝试将arrayList中每个字符串的第一个字母大写;如果不选择+大写第一个字符(作为字符或作为子字符串)然后添加单词的其余部分,我无法确定一种方法。
public List<String> capitalizeAllWords(ArrayList<String> words) {
return words.stream().collect(Collectors.toList().forEach(word ->
word.substring(0,1).toUpperCase() + word.substring(1))
);
}
【问题讨论】:
-
您必须在收集之前进行转换。
Collectors.toList()给你一个 Collector,你不能在上面调用forEach。 (word -> word.substring(0,1).toUpperCase() + word.substring(1))被分配给map)。你根本不需要打电话给forEach -
(之前的复制链接不正确。字符串中的单词大写与字符串列表中的字符串大写是不同的问题。)