尝试按名字的第一个字母过滤学生的 ArrayList。字符值是用户定义的。
我尝试将字符更改为字符串并使用显示“”而不是字符第一个字母。
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);
目标是从数组中打印姓名以用户输入的字母开头的学生列表。获取字符无法取消引用错误。
最佳答案
您可以使用:
.filter(x -> x.getFirstName().startsWith(String.valueOf(firstLetter)))
并摆脱正在使用的map
ping
.map(Student::getFirstName)
这样生成的实体中就没有字符串。
关于java - 如何通过用户输入的字符值过滤数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57992546/