2017-03-20 3 views
0

トリムを使用して、特定の文字を文字列から削除したいと考えています。問題は、その最初の特定の文字だけを削除することですが、文字列全体を通過させたいのです。これはコードです:.Trimは文字列全体から特定の文字を削除します。 (C#)

string mySt1 = mySt2.Trim('a', 'b', 'c'); 

たとえば、mySt2が「a b c d」の場合、文字「a」のみが削除されます。 何が問題なのでしょうか?

答えて

0

コードはコンパイルされますか? C#ではトリムメソッドに引数( 'a'、 'b'、 'c')が必要ないため、少し驚いています。 mySt2が "b c d"となっているようです。そうですか?

あなたの質問に対する答え「問題は何か?」備考セクションでは、トリムメソッドのマイクロソフトの定義に表示されます。https://msdn.microsoft.com/en-us/library/t97s7bs3(v=vs.110).aspx

トリムメソッドは、現在の文字列からすべての先頭と末尾の空白文字を削除します。先頭と末尾のトリミング操作は、空白以外の文字が検出されると停止します。

トリムは、最初の「A」を見つけたら、だからあなたの場合には、それは最初に「A」を取り除き、残りの文字列を返します。 'b'と 'c'の引数は無視されるので、それ以上には行きません。

文字列内の任意の場所に表示される複数の単一文字を削除する場合は、おそらくメソッドの組み合わせを使用する必要があります。私はC#コンパイラを持っていないので、コードを書くことはできません。しかし、私は多くの言語(Pascal、Snobol、Python、Cなど)でたくさんの文字列操作コードを書いているので、MicrosoftのC#Stringメソッドページhttps://msdn.microsoft.com/en-us/library/system.string_Methods(v=vs.110).aspxのメソッドを使用して、一連の手順を実行できます。文字列で、削除するために、各特定の文字については

、ステップ1は、文字列で、削除する特定の文字を見つけながら行います。

  1. あなたが探している文字の次の出現箇所を見つけます。 (IndexOf(Char))

  2. 削除する文字の前に文字を連結し、削除する文字の後に文字を連結し、結果の文字列を保存します。だから、(String.Removeメソッド(Int32、Int32)をオーバーライドします)

は、最終的には、文字列 "アブラカダブラのSHAZAMを!" 与え、あなたはすべての( 'A' を削除したい場合は、「B '、' c ')s(ただし、空白ではない)の場合、コードは "Ardr shzm!"(あなたには' A '!=' a ')が表示されます。

「方法の削除」ページにアクセスし、「例」を参照して正しい構文を確認してください。

0

[置換]だけを使用してください。このようなものはうまくいくはずです:

var mySt1 = mySt2.Replace(new char[] {'a', 'b', 'c'}, string.Empty); 
関連する問題