2017-08-17 1 views
-2

Ich habe eine HashMap<key, value>, wo die value ist eine lange Zeichenfolge Abfrage wie folgt: "localhost:5555/?deviceId=<deviceId>&timeStamp=<timeStamp>&userName=<userName>" und so weiter.Ersetzen Sie HashMap String Wert mit Regex

Dann habe ich noch HashMap<key2, value2>

key2 Werte alle char-Sequenzen in der langen Kette passen würde, die Diamant Klammern <> um sie herum haben, und ich möchte, dass sie ersetzen mit value2

mich Bitte weisen in die richtige Richtung.

+0

könnten Sie ein Beispiel für die zweite Karte zur Verfügung stellen und das Ergebnis, das Sie zu bekommen sind triyng zu? – skwisgaar

+0

Nicht sicher, was Sie zu tun versuchen, aber für die Manipulation von URL-Abfrage-Parameter, verwenden 'URIBuilder' von J2EE oder von Apache HTTPComponents – slim

Antwort

0

Keine Notwendigkeit für reguläre Ausdrücke:

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

Ich dachte ursprünglich in dieser Richtung, aber ich dachte, es könnte einen anderen Weg mit Regex. Auf jeden Fall funktioniert das ganz gut, danke für die Lösung. – SergioLeone

+0

Wenn es eine einfache Lösung gibt, denke ich, dass es am besten ist, Regexes zu vermeiden. Sie erschweren oft die Dinge und sind schwieriger zu überprüfen. – pchaigno