2010-11-26 5 views

Antwort

146

Das hängt davon ab, was Sie meinen. Wenn Sie nur loswerden von ihnen wollen bekommen, dies zu tun:
(Update: Anscheinend wollen Sie Ziffern als auch halten, um die zweiten Linien in diesem Fall verwenden)

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 Faktoren können durch die Vorkompilieren RegexMuster signifikant verbessert werden und es in einem konstanten Speichern)

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 wollen etwas akzentuierte Zeichen in drehen sinnvoll, dass nach wie vor ascii ist, auf diese Fragen suchen:

+0

Dank Floydit es fine.but ein Problem arbeitet, ist es – Tanu

+0

, wenn ich diese Funktion bin mit Es entfernt alle Zahlen als auch. Aber ich will nicht, dass Zahlen entfernen. gerade Sonderzeichen entfernen möchten. Bitte schlagen Sie etwas vor. – Tanu

+0

gut Sie sagten, dass Sie nur das Alphabet wollten. Aber ich werde meine Antwort in einer Minute aktualisieren –

0

Sie können Verwenden Sie grundlegende reguläre Ausdrücke für Strings, um alle Sonderzeichen oder zu finden Verwenden Sie Pattern- und Matcher-Klassen zum Suchen/Ändern/Löschen von benutzerdefinierten Strings. Dieser Link enthält einige einfache und leicht verständliche Beispiele für reguläre Ausdrücke: http://www.vogella.de/articles/JavaRegularExpressions/article.html

55

Ich benutze dies.

s = s.replaceAll("\\W", ""); 

Es ersetzt alle Sonderzeichen aus Zeichenfolge.

Hier

\ w: Ein Wortzeichen, die Abkürzung für [a-zA-Z_0-9]

\ W: Ein Nicht-Wortzeichen

+4

Das ist gut, aber auch Entfernt Leerzeichen. –

+3

Was ist, wenn ich den Raum nicht entfernen möchte? –

+0

Funktioniert nicht für . Wie entferne ich '<', '>', '\' Zeichen? – Manoj

0

Sie können für diese Junk erhalten Unicode Zeichen von Charactermap Werkzeug im Fenster pc und add \ u z \ u00a9 für das Copyright-Symbol. Jetzt können Sie diese Zeichenfolge mit diesem bestimmten Junk-Charakter verwenden, entfernen Sie keine Junk-Zeichen, sondern ersetzen Sie sie durch den richtigen Unicode.

4

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

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

Und wenn Sie nur alphabetische Zeichen behalten wollen verwenden diese

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

entfernt auch Leerzeichen – Jasper

+0

Für Leerzeichen verwenden Sie 'replaceAll (" [^ a-zA-Z0-9] "," ");' – Qamar

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

Hier alle Sonderzeichen außer Leerzeichen, Komma, und Ampersand ersetzt werden. 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)", ""); 

Wo Eingabe der Zeichenfolge, die wir die Zeichen ersetzen müssen.

Verwandte Themen