// Das Array von Werten ist in der Form { "var1", "val1", "var2", "val2", ..}Ersetzen eines Satzes Strings in einem String unabhängig voneinander (parallel)
public static String replaceMethod(String template, String... values) {
String p = template;
for (int i = 0; i < values.length; i += 2) {
p = p.replace(values[i], values[i+1]);
}
return populatedTemplate;
}
Diese Methode ersetzt eine Reihe von Teilzeichenfolgen mit entsprechenden Werten in einer Zeichenfolge. Bsp: - string => abcd Sub-String-Array von Werten ["a", "b", "c", "d"] Es bedeutet ersetzen 'a' mit 'b' und 'b' mit 'c ".
So, jetzt kommt das Problem.
1.My obige Implementierung ersetzt 'a' mit 'b' in der ersten Schleife und dann in der zweiten Schleife, ersetzt es 'b' mit 'c', die endgültige Zeichenfolge als "cccd". Aber ich will das als "bccd" raus. Bei einem Ersatz in Serie wird der vorherige ersetzte String verwendet, um weiter zu arbeiten. Gibt es eine Möglichkeit, alle Sub-Strings auf eine effizientere Weise zu ersetzen.
2.Wie kann ich obige Methode mit Map anstelle von Array implementieren (zweites Argument der obigen Methode)? Ist Map besser oder ist die Implementierung in Ordnung?
Für mich scheint es, wie das Problem der das erste Element aus einem Array entfernt .... ..http: //stackoverflow.com/questions/3663944/what-is-the-best-way-to-remove-the-first-element-from-an-array –
Es ist ziemlich inkohärent, was Sie zu sagen versuchen .Wenn 'template =" abcd "' und 'values = {" a "," b "," c "," d "}' dann lautet die Ausgabe "bbdd" – Hackerdarshi
@Hackerdarshi wenn template - "abcd" und values = { "a", "b", "c", "d"}, dann a -> b und c -> d, verwende ich alternative Indizes des Arrays für Schlüsselwertpaare. – tarun14110