2017-08-17 9 views
-2

私はHashMap<key, value>です。ここでvalue"localhost:5555/?deviceId=<deviceId>&timeStamp=<timeStamp>&userName=<userName>"のような長い文字列クエリです。HashMap文字列の値を正規表現に置き換えます

その後、私は彼らの周り>別のHashMap<key2, value2>

key2値はダイヤモンドブラケット<を持っている長い文字列内のすべての文字列を一致しており、私はvalue2

でそれらを交換したい右に私を指すください。方向。

+0

あなたは第2のマップとあなたが得るためにtriyngしている結果の一例を提供することができますか? – skwisgaar

+0

あなたは何をしようとしているのか分かりませんが、URLクエリパラメータを操作するには、J2EEまたはApache HTTPComponentsからURIBuilderを使用することを検討してください。 – slim

答えて

0

正規表現は必要ない:

for (Map.Entry<String, String> entry1 : map1.entrySet()) { 
    String value1 = entry1.getValue(); 
    for (Map.Entry<String, String> entry2 : map2.entrySet()) { 
     String key2 = entry2.getKey(); 
     String value2 = entry2.getValue(); 
     String newValue = value1.replace('<' + key2 + '>', value2); 
     map1.put(entry1.getKey(), newValue); 
    } 
} 
+0

私はこの方向で考えていましたが、いずれにせよ、これは完璧に機能します。解決に感謝します。 – SergioLeone

+0

単純な解決策があるときは、正規表現を避けるのが最善だと思います。彼らはしばしば事態を複雑にし、見直しが難しい。 – pchaigno

関連する問題