java - 如何通过用户输入的字符值过滤数组列表
问题描述
尝试按名字的第一个字母过滤学生的 ArrayList。char 值是用户定义的。
我尝试将 char 更改为字符串并使用显示“”而不是 char firstLetter。
ArrayList<Student> studentList = new ArrayList<>(Arrays.asList(students));
System.out.println("Please enter the first letter a students name: ");
firstLetter = keyboard.nextLine().charAt(0);
Student student1 = student.stream().filter(x -> x.getFirstName().indexOf(firstLetter) == 0)
.map(Student::getFirstName).findAny().orElse(Null);
目标是从数组中打印学生列表,其名称以用户输入的字母开头。获取 char 不能被取消引用错误。
解决方案
您可以改为使用:
.filter(x -> x.getFirstName().startsWith(String.valueOf(firstLetter)))
并摆脱map
正在使用的 ping
.map(Student::getFirstName)
这样您在结果实体中就没有字符串。
推荐阅读
- r - 根据用户对 radioButtons() 的选择,使用 downloadHandler() 动态下载闪亮的文件
- reactjs - 将图像文件上传到 Mongodb 会创建一个空项目。反应 JS
- rust - 如何使用任意键类型序列化和反序列化 BTreeMap?
- node.js - 编写此 Node.js 逻辑以从 Google Cloud Storage 检索和更新 CSV 数据的更具可扩展性的方式?
- java - Maven 项目编译错误:找不到符号(即 java.lang.String)
- spatial - 如何在 Grakn 中定义多边形?
- javascript - 左右未选中的单选按钮的总和值
- python - 如何使用appium删除带有空格的文件?
- python-3.x - how to install sub modules of keras and tensorflow?
- python - 坚持这个高中编码活动