【发布时间】:2018-04-03 16:33:32
【问题描述】:
import java.util.Arrays;
import java.util.List;
public class CapitalizeAndSort {
public static void main(String[] args) {
List<String> topNames2017 = Arrays.asList(
"Amelia",
"Olivia",
"emily",
"Isla",
"Ava",
"oliver",
"Jack",
"Charlie",
"harry",
"Jacob"
);
for(int i = 0; i < topNames2017.size(); i++) {
topNames2017.set(i, capitalize(topNames2017.get(i)));
}
List<String> sorted = Arrays.asList(
topNames2017.stream().sorted(
(s1, s2) -> s1.compareToIgnoreCase(s2)
).toArray(String[]::new)
);
sorted.forEach(System.out::println);
}
private static String capitalize(final String line) {
return Character.toUpperCase(line.charAt(0)) + line.substring(1);
}
}
上面的代码可以按我想要的方式工作和排序。
如何按字母顺序排序并确保使用方法引用将第一个字母大写?
非常感谢您的帮助!
【问题讨论】:
-
您确定此代码有效吗?格式化后出现一些语法问题
-
为什么不直接使用
topNames2017.sort()? -
如果您需要首字母大写并排序,您可以这样做:
topNames2017.stream().map(YourClassName::capitalize).sorted().collect(Collectors.toList());
标签: java arrays sorting arraylist