2016-03-29 8 views
-2

ユーザ入力からすべての句読点文字を削除するにはどうすればよいですか?私は入力を保持している文字列変数を持っていますが、入力にも次のようになりますユーザ入力からすべての句読点を無視するC#

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

だから、明らかに引用符が全体のコードをいじりされています。私はこれを試しました

var sb = new StringBuilder(); 

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

line = sb.ToString(); 

しかし、それは例のような引用を解決しません。すべてのアドバイスをいただきありがとうございます。

EDITは - 「」私はそれから数字だけを抽出したい、私はコードを持っていますが、私は引用符なしの文字列を必要とし、=、あなたがベースの欲しいものを達成するために、私はエラー

+1

期待される出力? – Eser

+0

バックチック( ')文字を意味しますか?バックティックは、句読点ではなく、Unicodeの「記号」です。だからあなたが望むのは数字と文字だけです。 –

+0

なぜ引用符がコード全体を乱していると言いますか?私は二重引用符よりもIsPunctuation()を満たすと思われる – kenny

答えて

0

を取得表示されたら、理由コメントとあなたの編集をオフにするだけで簡単に変更します。

var sb = new StringBuilder(); 

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

line = sb.ToString(); 

行には、この後に番号を付ける必要があります。

+0

FYI:コードを1行に減らすことができます。 'line = string.Concat(line.Where(char.IsDigit));' – Eser

+0

ああ、私はそれを知っていました。私はちょうど質問で提供されたものにそれを結びつけていたので、彼らは私が書いたものと書いたものの違いを見ることができました。彼らがそれをリファクタリングしたい場合は、それらを聞かせてください。 –

関連する問題