wake-up-neo.net

so entfernen Sie Klammernzeichen in Zeichenfolge (Java)

Ich möchte alle Arten von Klammerzeichen (Beispiel: [], (), {}) in der Zeichenfolge mit Java entfernen.

Ich habe versucht, diesen Code zu verwenden:

String test = "watching tv (at home)"; 
test = test.replaceAll("(","");
test = test.replaceAll(")","");

Aber es funktioniert nicht, bitte hilf mir.

So entfernen Sie alle Satzzeichen, die alle Klammern, Klammern und Klammern enthalten ...

String test = "watching tv (at home)"; 
test = test.replaceAll("\\p{P}","");
17
StackFlowed

Das erste Argument von replaceAll nimmt einen regulären Ausdruck an. 

Alle Klammern haben in Regex eine Bedeutung: Klammern werden in Regex verwendet, um auf Gruppen zu erfassen , Eckige Klammern werden für Zeichenklasse verwendet & Klammern werden für übereinstimmende Zeichen verwendet. Deshalb müssen sie alle mit Escapezeichen versehen werden. Hier können die Zeichen jedoch einfach in eine Zeichenklasse eingeschlossen werden, wobei nur Escapezeichen für eckige Klammern erforderlich sind

test = test.replaceAll("[\\[\\](){}]","");
21
Reimeus

Das erste an die replaceAll()-Methode übergebene Argument sollte ein regulärer Ausdruck sein. Wenn Sie diese literalen Klammerzeichen abgleichen möchten, müssen Sie sie mit \\(, \\) versehen.

Sie können das Folgende verwenden, um Klammerzeichen zu entfernen. Unicode-Eigenschaft \p{Ps} passt zu jeder Art von öffnender Klammer und Unicode-Eigenschaft \p{Pe} entspricht jeder Art von schließender Klammer.

String test = "watching tv (at home) or [at school] or {at work}()[]{}";
test = test.replaceAll("[\\p{Ps}\\p{Pe}]", "");
System.out.println(test); //=> "watching tv at home or at school or at work"
4
hwnd

Sie müssen die Klammer verlassen, da sie als Bestandteil einer Regex behandelt wird

String test = "watching tv (at home)"; 
test = test.replaceAll("\\(","");
test = test.replaceAll("\\)","");

Versuchen Sie auch, alle Klammern zu entfernen

String test = "watching tv (at home)"; 
test = test.replaceAll("[\\(\\)\\[\\]\\{\\}]","");
2
AbstractChaos

Sie können String.replace anstelle von String.replaceAll für bessere Leistung verwenden, da es nach der genauen Reihenfolge sucht und keine regulären Ausdrücke benötigt.

String test = "watching tv (at home)"; 
test = test.replace("(", " ");
test = test.replace(")", " ");
test = test.replace("[", " ");
test = test.replace("]", " ");
test = test.replace("{", " ");
test = test.replace("}", " ");

Wenn Sie mit Texten arbeiten, empfehle ich Ihnen, die Klammern durch ein Leerzeichen zu ersetzen, um zu vermeiden, dass Wörter miteinander verbunden werden: watching tv(at home) -> watching tvat home 

2
Javi Fernández

subject = StringUtils.substringBetween (subject, "[", "]")

0