1

文字列オブジェクトでTrim()メソッドを使用すると、文字の配列を渡すことができ、文字列からそれらの文字が削除されます。例:

string strDOB = "1975-12-23     ";
MessageBox.Show(strDOB.Substring(2).Trim("- ".ToCharArray()));

この結果は、期待される結果「751223」ではなく「75-12-23」になります。これはなぜですか。

ボーナスの質問:この行と比較してオーバーヘッドが大きいのはどれですか(まったく同じことをします):

strDOB.Substring(2).Trim().Replace("-", "");
4

5 に答える 5

8

トリム機能は、文字列の末尾から文字のみをトリムします。

どこでもそれらを排除したい場合は、置換を使用してください...

于 2009-09-01T15:09:34.353 に答える
1

MSDNから:

現在のStringオブジェクトから指定された文字のセットの先頭末尾のすべての出現箇所が削除された新しい文字列を返します 。

それは自明だと思います。

于 2009-09-01T15:11:31.447 に答える
0

トリムは開始と終了からのみ削除します。文字列内から削除する場合は、[置換]を使用します。

于 2009-11-13T10:58:19.307 に答える
0

Trim文字列の最初と最後から文字を削除するだけです。内部の「-」文字は、内部の空白よりも削除されません。あなたが欲しいReplace()

于 2009-09-01T15:10:37.050 に答える
0

他の人は正しく答えました。トリムは文字列の最初と最後から文字だけをトリムします。使用する:-

Console.WriteLine( strDOB.Substring(2, 8).Replace("-","") )

これは、元の文字列の形式が固定されていることを前提としています。パフォーマンスに関しては、あなたがこれらを何百万もやっていない限り、私はそれについて心配しません。

于 2009-09-01T15:19:35.237 に答える