2016-03-29 7 views
-2

Wie entferne ich alle Interpunktionszeichen von Benutzereingaben? Ich habe einen String-Variable, die die Eingabe hält, aber der Eingang kann auch wie folgt aussehen:Alle Interpunktionszeichen von Benutzereingaben ignorieren C#

string line = " :%tgc_7_$;:U|F]wyWhb3230;n7"`da "; 

So offensichtlich die Zitate mit dem ganzen Code sind in Unordnung. Ich habe schon versucht, diese

var sb = new StringBuilder(); 

foreach (char c in line) 
{ 
    if (!char.IsPunctuation(c)) 
     sb.Append(c); 
} 

line = sb.ToString(); 

Aber das ist nicht das Angebot, was zum Beispiel lösen. Vielen Dank für alle Hinweise.

EDIT - Ich will nur Zahlen aus ihm extrahieren, ich den Code haben, aber ich brauche einen String ohne Anführungszeichen „“ und = weil, wenn es ich einen Fehler

+1

Erwartete Ausgabe? – Eser

+0

Sie meinen das Back-Tick (') Zeichen? Back-Ticks sind "Symbole" in Unicode, keine Interpunktion. Alles was du willst sind Ziffern und Zeichen? –

+0

Warum sagen Sie, dass die Zitate den ganzen Code durcheinander bringen? Ich vermute mehr als die doppelten Anführungszeichen erfüllen IsPunctuation() – kenny

Antwort

0

Um etwas wollen zu erreichen bekommen wird Ihnen auf der Grundlage Aus den Kommentaren und Ihren Änderungen einfach ändern.

var sb = new StringBuilder(); 

foreach (char c in line) 
{ 
    if (char.IsDigit(c)) 
     sb.Append(c); 
} 

line = sb.ToString(); 

Zeile sollte dann nur Zahlen haben danach.

+0

FYI: Ihr Code kann auf einen einzeiligen 'line = string.Concat (line.Where (char.IsDigit)) reduziert werden;' – Eser

+0

Oh ja, das war mir bewusst. Ich habe es nur an das gebunden, was in der Frage bereitgestellt wurde, damit sie den Unterschied in dem, was sie geschrieben haben, mit dem, was ich geschrieben habe, sehen konnten. Wenn sie es umgestalten wollen, lass sie. –

Verwandte Themen