为了账号安全,请及时绑定邮箱和手机立即绑定

如何按排序顺序查找以小写“a”开头的前三个字符串

如何按排序顺序查找以小写“a”开头的前三个字符串

杨__羊羊 2024-01-17 17:09:12
Java 8 流 API /a如何查找按排序顺序以小写字母开头的前三个字符串。如何使用 打印结果System.out.println()。List<String> myList =   Arrays.asList("A1", "a2", "b1", "c2", "A2", "a3", "c2", "A3", "c2", "a1", "a4", "a6");       myList.stream().filter(s -> s.startsWith("a"))             .map(String::toLowerCase)             .sorted()             .forEach(s ->System.out.println("Filtered value: " + s)); a如何只打印按排序顺序以小写字母开头的前三个字符串?请帮忙& 在这种情况下:我不明白嵌套的这个任务:如何只打印前三个字符串,它们按排序顺序以小写 a 开头?公共课任务{public static void main(String[] args){final List<String> myList1 =    Arrays.asList("c1", "b2", "G3", "g4", "b1",                  "b3", "G5", "g3", "b5", "e2", "b8", "b2",                  "g8", "i9", "b10", "j6", "s2", "g2", "B9",                  "B1", "g7", "b8", "N7", "e9");final List<String> myList2 =    Arrays.asList("c1", "b2", "G3", "g4", "b1",                  "b3", "G5", "g3", "b5", "e2", "b8", "b2",                  "g8", "i9", "b10", "j6", "s2", "g2", "B9",                  "B1", "g7", "b8", "N7", "e9");List<List<String>> nestedList = new ArrayList<>();nestedList.add(myList1);nestedList.add(myList2);}}
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

这似乎有效 - 需要告诉列表您正在使用什么类型的对象


List<String> myList = Arrays.asList("A1", "a2", "b1", "c2", "A2", 

                                   "a3", "c2", "A3", "c2", "a1", "a4", "a6");


myList.stream().filter(s -> s.startsWith("a")).sorted().limit(3)

forEach(s ->System.out.println("Filtered value: " + s));

此外,由于您只需要小写,a因此无需转换为小写。


查看完整回答
反对 回复 2024-01-17
?
jeck猫

TA贡献1909条经验 获得超7个赞

您可以.limit(3)在排序后添加到您的流中。需要输入列表才能使用 String 方法,除非您希望将结果转换为小写,否则List<String>不需要。toLowerCase


List<String> myList = List.of(

    "A1", "a2", "b1", "c2", "A2", "a3", "c2", "A3", "c2", "a1", "a4", "a6");

myList.stream().filter(s -> s.charAt(0) == 'a').sorted().limit(3)

    .forEach(s -> System.out.println("Filtered value: " + s));

更新:对于从每个字符串的索引 1 开始的数字排序:


Comparator<String> comparator = Comparator.comparing(

    s -> Integer.parseInt(s.substring(1)));

myList.stream().filter(s -> s.charAt(0) == 'a').sorted(comparator).limit(3)

    .forEach(s -> System.out.println("Filtered value: " + s));


查看完整回答
反对 回复 2024-01-17
?
largeQ

TA贡献2039条经验 获得超7个赞

请找到以下相同的代码:

List<String> myList = Arrays.asList("A1", "a2", "b1", "c2", "A2", "a3", "c2", "A3", "c2", "a1", "a4", "a6");
            myList.stream().filter(x-> x.startsWith("a")).sorted().limit(3).forEach(System.out :: println);



查看完整回答
反对 回复 2024-01-17
  • 3 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信