start - string java set char




Wie kann man Sonderzeichen in einer Zeichenfolge ersetzen? (5)

Das kommt darauf an, was du meinst. Wenn Sie sie einfach loswerden wollen, tun Sie Folgendes:
(Update: Anscheinend wollen Sie auch Ziffern behalten, benutzen Sie die zweiten Zeilen in diesem Fall)

String alphaOnly = input.replaceAll("[^a-zA-Z]+","");
String alphaAndDigits = input.replaceAll("[^a-zA-Z0-9]+","");

oder das Äquivalent:

String alphaOnly = input.replaceAll("[^\\p{Alpha}]+","");
String alphaAndDigits = input.replaceAll("[^\\p{Alpha}\\p{Digit}]+","");

(Alle diese können erheblich verbessert werden, indem das Regex-Muster vorkompiliert und in einer Konstanten gespeichert wird)

Oder mit Guava :

private static final CharMatcher ALNUM =
  CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('A', 'Z'))
  .or(CharMatcher.inRange('0', '9')).precomputed();
// ...
String alphaAndDigits = ALNUM.retainFrom(input);

Aber wenn Sie akzentuierte Zeichen in etwas Sinnvolles verwandeln wollen, das immer noch ascii ist, schauen Sie sich diese Fragen an:

Ich habe eine Zeichenfolge mit vielen Sonderzeichen. Ich möchte alle entfernen, aber alphabetische Zeichen behalten.

Wie kann ich das machen?


Für Leerzeichen verwenden Sie "[^ az AZ 0-9]" dieses Muster


Sie können Unicode für dieses Junk-Zeichen vom Charactermap-Tool im Fenster pc erhalten und \ u Beispiel \ u00a9 für das Copyright-Symbol hinzufügen. Jetzt können Sie diese Zeichenfolge mit diesem speziellen Schrott-Zeichen verwenden, entfernen Sie keine Junk-Zeichen, sondern ersetzen Sie sie durch den richtigen Unicode.


Sie können die folgende Methode verwenden, um alphanumerische Zeichen zu behalten.

replaceAll("[^a-zA-Z0-9]", "");

Und wenn Sie nur alphabetische Zeichen behalten möchten, verwenden Sie dies

replaceAll("[^a-zA-Z]", "");

string Output = Regex.Replace(Input, @"([ a-zA-Z0-9&, _]|^\s)", "");

Hier werden alle Sonderzeichen außer Leerzeichen, Komma und kaufmännisches Und ersetzt. Sie können auch Leerzeichen, Komma und kaufmännisches Und zwar mit dem folgenden regulären Ausdruck weglassen.

string Output = Regex.Replace(Input, @"([ a-zA-Z0-9_]|^\s)", "");

Wobei Input die Zeichenfolge ist, die wir brauchen, um die Zeichen zu ersetzen.





string