如何 return 在 java 中具有特定字符的数组列表

How to return array list which has specific char in java

我想 return 一个数组列表中的名称列表,它没有 char 'a' 作为最后一个字母,我试图为它创建一个循环并找到最后一个字母来自每个名字。

List<String> names = new ArrayList<>();
    names.addAll(Arrays.asList("Tomek", "Ania", "Krzys", "Tomek"));
   String last = names.get(names.size());
    int lastLetter = last.length() - 1;
    for (String word : names) {
        if (lastLetter != 'a' ) {
            System.out.println(names);
        }
    }
}

输出

["Tomek", "Krzys","Tomek"]
List<String> toReturn = new ArrayList<>();
for (String word : names) {
    char lastLetter = word.toLowerCase().charAt(word.length() - 1);
    if (lastLetter != 'a') {
       toReturn.add(word);
    }
}
return toReturn;

如果您使用的是 Java 8 或更高版本,您可以使用流来过滤名称,如下所示。

List<String> names = Arrays.asList("Tomek", "Ania", "Krzys", "Tomek");
List<String> updated = names.stream()
                .filter(s -> s.charAt(s.length() - 1) != 'a')
                .collect(Collectors.toList());
updated.forEach(System.out::println);

在上面的代码中 names.stream() 将数组转换为流,filter() 将根据谓词过滤流,字符串的最后一个字符不是 'a' 然后 collect 将使用过滤后的列表创建一个新列表。