2017-04-19 18 views
-3

私はStringのこの種ました:Javaで特定の単語の後に単語を取り出す方法は?

{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......} 

を、私はcc=後、すべての単語のリストを取得したいです。

どうすればいいですか?私は正規表現のものには自信がありません。

+0

地図またはプロパティオブジェクトでしたか? – Rao

+0

は地図オブジェクトですし、mymap.get( "mykey")を使用してリストを返します(これはtoString()メソッドによって文字列として使用されます) – boso92

+0

あなたが試したことや、あなたは問題を引き起こすと思いますか? – Rao

答えて

2
public static void main(String[] args) { 
    String input = "aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3"; 
    String[] splitValues = input.split(", "); 
    Map<String,List<String>> results = new Hashtable<>(); 
    List<String> valueList = null; 
    // iterate through each key=value adding to the results 
    for (String a : splitValues) { 
     // a = "aa=bbbb" etc 
     String[] keyValues = a.split("="); 
     // you can check if values exist. This assumes they do. 
     String key = keyValues[0]; 
     String value = keyValues[1]; 
     // if it is already in map, add to its value list 
     if (results.containsKey(key)) { 
      valueList = results.get(key); 
      valueList.add(value); 
      } else { 
      valueList = new ArrayList<>(); 
      valueList.add(value); 
      results.put(key, valueList); 
      } 
     } 

     System.out.println("cc= values"); 
     valueList = results.get("cc"); 
     // assumes value is in results 
     for (String a : valueList) 
      System.out.println(a); 

} 
0

あなたの質問は非常にあいまいですが、私は文字列が似ているとして提供されている推測しています:私はあなたが抽象Listオブジェクトにではなく、配列を参照している推測してい

リストによって
String toSearch = "{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......}"; 

。ここで溶液は:

String toSearch = "{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......}"; 
List<String> result = new ArrayList<String>(); 
int prevMatch = 0; 
while (toSearch.indexOf("cc=", prevMatch+1) != -1) { 
    result.add(toSearch.substring(// Substring method. 
       toSearch.indexOf("cc=",prevMatch+1)+3,toSearch.indexOf(",") //Getting correct indexes. 
       )); 
       prevMatch = toSearch.indexOf("cc=",prevMatch+1); 
} 

prevMatch変数が返されるのindexOf(「CCは=」)文字列で発生した次のものであることを保証します。上記のStringの場合、返されるArrayListには、単語 "blabla1"、 "blabla2"、 "blabla3"などが含まれます。

関連する問題