entferne alle Sonderzeichen in Java [duplizieren]

7
%Vor%

Fall 1

%Vor%

Fall 2

%Vor%

Fall 3

%Vor%

Jeder bitte helfen Sie mir herauszufinden, was ist falsch in meiner Code-Logik?

    
Ravi 16.01.2013, 15:12
quelle

3 Antworten

18

Verwenden Sie [\W+] oder "[^a-zA-Z0-9]" als Regex, um alle Sonderzeichen zu finden, und verwenden Sie String.replaceAll (regex, String), um den Splitter durch eine leere Zeichenfolge zu ersetzen. Denken Sie daran, dass das erste Argument von String.replaceAll eine Regex ist, müssen Sie es mit einem umgekehrten Schrägstrich zurückhalten, um em als Literalzeichen zu behandeln.

%Vor%     
PermGenError 16.01.2013, 15:18
quelle
10

Sie können die Zeilen lesen und auf diese Weise alle Sonderzeichen sicher ersetzen.
Beachten Sie, dass Sie bei Verwendung von \W keine Unterstriche ersetzen.

%Vor%     
rtheunissen 16.01.2013 15:17
quelle
3

Ihr Problem besteht darin, dass die von match.start() zurückgegebenen Indizes der Position des Zeichens entsprechen, wie es in der ursprünglichen Zeichenfolge angezeigt wurde, als Sie es gefunden haben. Da Sie die Zeichenfolge c jedoch jedes Mal neu schreiben, werden diese Indizes falsch.

Der beste Lösungsansatz ist die Verwendung von replaceAll , zum Beispiel:

%Vor%     
Sébastien Le Callonnec 16.01.2013 15:21
quelle

Tags und Links