如何找到包含特定字符的元素的位置
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) + ".";
}
所以我有一个列表,其中存储有名字和姓氏的名字。 (此列表称为 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) + ".";
}