13

私は以下のような文字列を持っています

2,44,AAA,BBB,1,0,,,

だから今、上記の文字列の最後のコンマだけを削除したい. だから私は出力が欲しい

2,44,AAA,BBB,1,0,,

以下のようにTrimEndを使用することにしました

str.ToString.TrimEnd(',')

しかし、それは0の後のすべてのコンマを削除しました.だから私は以下のように出力を得ます

2,44,AAA,BBB,1,0

0 の後の 3 つのコンマをすべて削除するのはなぜですか? 文字列の最後の文字を削除するだけです

4

4 に答える 4

39

0 の後の 3 つのコンマをすべて削除するのはなぜですか?

それが文書化されているためです:

戻り値:
パラメータ 内のすべての文字trimCharsが現在の文字列の末尾から削除された後に残る文字列。

最後の文字だけを削除したい場合は、次を使用できます。

if (str.EndsWith(","))
{
    str = str.Substring(0, str.Length - 1);
}

または同等:

if (str.EndsWith(","))
{
    str = str.Remove(str.Length - 1);
}
于 2013-07-06T11:15:29.423 に答える
5

それが予想されます。現在の String オブジェクトから、配列で指定された一連の文字の末尾の出現箇所をすべてString.TrimEnd削除します

このTrimEnd(char[] trimChars)メソッドは、現在の文字列からパラメーター内の末尾のすべての文字を削除しtrimCharsます。文字列の末尾に含まれていない最初の文字が検出されると、トリム操作は停止しtrimCharsます。

代わりにこれを使用してください:

str = str.EndsWith(",") ? str.Substring(0, str.Length - 1) : str;
于 2013-07-06T11:16:23.957 に答える
2

これを使用できます:

string s = "2,44,AAA,BBB,1,0,,,";
s = s.Remove(s.Length-1, 1);
于 2013-07-06T11:22:38.260 に答える