如何找到包含特定字符的元素的位置

how to find the position of an element that contains a certain character

所以我有一个列表,其中存储有名字和姓氏的名字。 (此列表称为 regst) 我已经有一些方法来分隔名字和姓氏,还有一个设置和获取方法。

我必须执行一个代码 returns 一个字符串,该字符串代表我的注册列表中的每个名字,其名字包含字符“a”或“e”。同样获取这些名字并输出名字和姓氏的第一个字母。

到目前为止,我已经创建了这个 for 循环! 我的问题是如何 select 包含这些字符的名称和 returns 一个字符串,它在其中获取名字和姓氏的第一个字母? 一般:如何找到包含某个字符的元素的位置?

for (int i = 0; i < regst.size(); i++) {            
    if (regst.getName(i).getFirstName().contains("a") || regst.getName(i).getFirstName().contains("e")) {
        System.out.println("All the first names that contains the characters a or e: "
                 + regst.getName(i).getFirstName().contains("a") 
                 + regst.getName(i).getFirstName().contains("e"));
    } else {
        return "";
    }
}

您不需要实现任何迭代逻辑,因为 ArrayList 已经有了它。 只需从寄存器中获取列表

List<Name> list = register.getList(); // you need a getter for this

然后只需遍历列表和 return 所需名称列表:

public List<Name> findNames(List<Name> list) {
    List<Name> result = new ArrayList<>();
    for (Name name : list) {
        if (name.getFirstName().contains("a") || name.getFirstName().contains("e")) {
            result.add(name);
        }
    }
    return result;
}

或使用流API:

public static List<Name> findNames(List<Name> list) {
return list.stream()
    .filter(name -> name.getFirstName().contains("a") || name.getFirstName().contains("e"))
    .collect(Collectors.toList());
}

如果需要获取名字的首字母,可以在Name中实现这样的方法class:

public String getInitials() {
    return firstName.charAt(0) + "." + familyName.charAt(0) + ".";
}