0

文字列があるとします

String s = bob

およびArrayList

["alex [available]", "bob [away]", "craig [busy]", "david [gone fishing]"]

リストを検索して [1] の要素を取得するにはどうすればよいですか?

4

5 に答える 5

6
String strToSearch = yourString + " [";//"bob ["

for (int i = 0; i < list.size(); i++){
    if (list.get(i).startsWith(strToSearch)){
         neededIndex = i;
         break;
    }
}
于 2012-12-03T10:47:38.267 に答える
2

リストを反復し、String.contains("bob")すべてのアイテムに対して a を実行する必要があります。

for (String item : listOfItems) {
   if (item.contains("bob") {
      return item;
   }
}

bob [「ボブ」は別の名前に含まれている可能性があるため、検索用語を拡張する必要があるかもしれません。

于 2012-12-03T10:47:52.387 に答える
1

おそらく、リストの代わりにマップを使用する必要があります。この場合、ループを使用する必要があります。

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);
}
于 2012-12-03T10:49:29.723 に答える
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;
        }
    }
}
于 2012-12-03T10:57:21.550 に答える
0
for (String str: list) {
   if (str.contains(s)) {
      return str;
   }
}

str.contains(s)念のため交換str.matches("^"+s+" [")

于 2012-12-03T10:50:16.587 に答える