以下のような文字列があります
2,44,AAA,BBB,1,0,,,
だから今、私は上記の文字列の最後のカンマのみを削除したいと思います。だから私は出力をしたい
2,44,AAA,BBB,1,0,,
以下のようにTrimeEndを使用することにしました
str.ToString.TrimEnd(',')
しかし、それは0の後のすべてのコンマを削除しました。以下のように出力を取得します
2,44,AAA,BBB,1,0
0の後の3つのカンマをすべて削除するのはなぜですか?文字列の最後の文字を削除するだけです
0の後の3つのカンマをすべて削除するのはなぜですか?
それが 文書化 のやり方だからです:
戻り値:
trimChars
パラメータ内のすべての文字の出現後に残っている文字列は、現在の文字列の末尾から削除されます。
最後の文字だけを削除したい場合は、次を使用できます。
if (str.EndsWith(","))
{
str = str.Substring(0, str.Length - 1);
}
または同等に:
if (str.EndsWith(","))
{
str = str.Remove(str.Length - 1);
}
それは予想されます。 _String.TrimEnd
_配列で指定された一連の文字の末尾のオカレンスallを現在のStringオブジェクトから削除します
TrimEnd(char[] trimChars)
メソッドは、現在の文字列から、trimChars
パラメータにあるすべての末尾の文字を削除します。 trimChars
にない最初の文字が文字列の最後で検出されると、トリム操作が停止します
代わりにこれを使用してください:
_str = str.EndsWith(",") ? str.Substring(0, str.Length - 1) : str;
_
TrimEnd()はインプレース関数ではありません。結果をstr
に再割り当てする必要があります:
str = str.TrimEnd(',')
あなたはこれを使うことができます:
string s = "2,44,AAA,BBB,1,0,,,";
s = s.Remove(s.Length-1, 1);