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

java 按用户输入的字符串值对字符串列表进行排序

java 按用户输入的字符串值对字符串列表进行排序

阿波罗的战车 2023-08-04 19:16:06
我正在寻找一种在java中根据用户输入对字符串列表进行排序的方法。例如,我的列表包含["Pat Henderson", "Zach Harrington", "Pat Douglas", "Karen Walsh"],如果用户输入名字,"Pat"我如何才能仅打印出列表中的帕特以及姓氏?
查看完整描述

3 回答

?
当年话下

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

ArrayList<String> str = new ArrayList<String>();


for(int i = 0 ; i < str.size() ; i++) {

    if(str.get(i).contains("your_user_input")) {

        System.out.println(str.get(i));

    }

}


查看完整回答
反对 回复 2023-08-04
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

.filter()Java 8 中引入了这个东西。


List<String> names = new ArrayList<>();

names.addAll(Arrays.asList("Pat Henderson", "Zach Harrington", "Pat Douglas", "Karen Walsh"));


String startsWith = "Pat";


List<String> filteredNames = names.stream()

        .filter(name -> name.startsWith(startsWith))

        .collect(Collectors.toList());

一点评论。排序是指重新排列元素的位置而不删除任何元素。


查看完整回答
反对 回复 2023-08-04
?
慕神8447489

TA贡献1780条经验 获得超1个赞

假设列表中的每个元素都有一个由空格或更多空格分隔的名称和姓氏,使用 Java 8,您可以通过以下方式过滤名称或姓氏:


List<String> list = Arrays.asList("Pat Henderson", "Zach Harrington", "Pat Douglas", "Karen Walsh");

String nameOrLastNameToFilter = ...;

list.stream().filter(s -> Arrays.stream(s.split("\\s+"))

                                .anyMatch(n->n.equals(nameOrLastNameToFilter))

                    )

    .collect(toList());


查看完整回答
反对 回复 2023-08-04
  • 3 回答
  • 0 关注
  • 115 浏览

添加回答

举报

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