ist es möglich, alle Fragezeichen ("?") durch "\?" ?
Sagen wir, ich habe eine Zeichenfolge, und ich möchte einige Teile dieser Zeichenfolge löschen, einen Teil mit einer URL darin. So:
%Vor%Aber! Wie ich es verstehe, können Sie die replaceAll () Methode nicht mit einem String verwenden, der ein einzelnes Fragezeichen enthält, Sie müssen sie wie folgt machen: "\?" zuerst.
Die Frage ist also; Gibt es eine Möglichkeit, Fragezeichen durch "\?" in einer Zeichenfolge? Und nein, ich kann nur die Zeichenfolge ändern.
Danke im Voraus, hoffe jemand versteht mich! (Sorry für schlechtes Englisch ...)
Verwenden Sie nicht replaceAll()
, verwenden Sie replace()
!
Es ist ein häufiges Missverständnis, dass replaceAll()
alle Vorkommen ersetzt und replace()
nur eins oder etwas ersetzt. Das ist völlig falsch.
replaceAll()
ist schlecht benannt - es ersetzt tatsächlich einen regex .
replace()
ersetzt einfache Strings, was Sie wollen.
Beide Methoden ersetzen alle Vorkommen des Ziels.
Mach einfach folgendes:
%Vor%Und es wird alles funktionieren.
Entkomme auch die \
mit \\?
.
Aber wie andere Antwort erwähnt haben, ist replaceAll
etwas übertrieben, nur ein replace
sollte funktionieren.
replaceAll
nimmt einen regulären Ausdruck, und ?
hat in der Regex-Welt eine besondere Bedeutung.
Sie sollten replace
in diesem Fall, da Sie keine Regex benötigen.
Oh, und Strings sind unveränderlich !! longstring = longstring.replace(..)
, beachte die Zuweisung.
Verwenden Sie String.replace()
anstelle von String.replaceAll()
:
String.replaceAll()
verwendet Regulärer Ausdruck , während String.replace()
verwendet einfachen Text.