说我有一个字符串
String s = bob
和ArrayList
["alex [available]", "bob [away]", "craig [busy]", "david [gone fishing]"]
如何搜索列表以获取[1]处的元素?
答案 0 :(得分:6)
String strToSearch = yourString + " [";//"bob ["
for (int i = 0; i < list.size(); i++){
if (list.get(i).startsWith(strToSearch)){
neededIndex = i;
break;
}
}
答案 1 :(得分:2)
您必须迭代列表并对每个项目执行String.contains("bob")
。
for (String item : listOfItems) {
if (item.contains("bob") {
return item;
}
}
也许您应该将搜索字词扩展为bob [
,因为“bob”可能包含在anoter名称中。
答案 2 :(得分:1)
你可能应该使用Map而不是List。在这种情况下,您需要使用循环。
List<String> nameStatusList = ...
String s = "bob";
FOUND: {
for(String ns: nameStatusList)
if(ns.startsWith(s + " [")) {
System.out.println(ns);
break FOUND;
}
System.out.println("Couldn't find " + s);
}
答案 3 :(得分:0)
for (String str: list) {
if (str.contains(s)) {
return str;
}
}
将str.contains(s)
替换为str.matches("^"+s+" [")
以防万一。
答案 4 :(得分:0)
这样的事情:
String string = "bob";
private List <String> list = new ArrayList<String>(){{
add("alex [available]");
add("bob [away]");
add("craig [busy]");
add("david [gone fishing]");
}};
public void method(){
String answer;
for (String s : list){
if (s.contains(string)){
answer = s;
break;
}
}
}