Ich ersetze Fragezeichen in einer Zeichenfolge mit anderen Werten.Java Ersetzen von Questionmarks, die nicht von Anführungszeichen umgeben sind
Beispiel:
String: "XYZ(?,?,?)"
Values: [1, 'Text', 0.5]
Result: XYZ(1,'Text', 0.5)
Mein Preudo-Code:
String s = "XYZ(?,?,?)";
for(int i = 0; i < array.lengh; i++){
s = s.replaceFirst("\\?",array[i]);
}
Normalerweise gut das funktioniert. Aber manchmal habe ich ein Fragezeichen in den Werten wie: Werte: [1,'Question?',0.5]
. Dann ist mein Ergebnis: XYZ(1,'Question0.5', ?)
. Dies liegt daran, dass die Funktion das Fragezeichen des Textes ersetzt, der eine Iteration früher ersetzt wurde.
Wie kann ich der Funktion sagen, nur Fragezeichen zu ersetzen, die nicht in Anführungszeichen eingeschlossen sind? Was ist der richtige Regex?
Sollte Ihr Pseudo-Code sein 's = s.replaceFirst (regex, Ersatz)' ;? –