gpt4 book ai didi

Java Stream .map 仅首字母大写

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:41 25 4
gpt4 key购买 nike

我正在尝试按字母顺序对我的列表进行排序,并将每个名字的首字母大写。

当我执行 toUpperCase 时,它​​会将每个字母大写。如果我不使用 .map 打印它,我会做 (topNames2017.substring(0, 1).toUpperCase() + topNames2017.substring(1))工作正常,但我不知道如何在这里应用它

List<String> topNames2017 = Arrays.asList(
"Amelia",
"Olivia",
"emily",
"Isla",
"Ava",
"oliver",
"Jack",
"Charlie",
"harry",
"Jacob"
);


topNames2017
.stream()
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);

最佳答案

您需要使用 lambda 来让您当前的尝试生效,例如:

.map(name -> name.substring(0, 1).toUpperCase() + name.substring(1))

上面的name 标识符表示传递给map 操作的当前字符串。

或者,也可以这样做:

.map(name -> Character.toUpperCase(name.charAt(0)) + name.substring(1))

如果你想保持方法引用的使用,那么你可以像这样定义你自己的函数:

static String capitaliseFirstLetter(String name){
return name.substring(0, 1).toUpperCase() + name.substring(1);
}

现在,您可以:

topNames2017.stream()
.map(Main::capitaliseFirstLetter) // replace Main with the class containing the capitaliseFirstLetter method
.sorted()
.forEach(System.out::println);

关于Java Stream .map 仅首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49543782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com