web-dev-qa-db-ja.com

文字列c#の最後の特定の文字を削除する

WinForms c#を使用します。以下のような文字列値があります。

string Something = "1,5,12,34,";

文字列の最後のコンマを削除する必要があります。どうすれば削除できますか?

62
user3042186

string.TrimEnd()を試してください:

Something = Something.TrimEnd(',');
199
King King

キングキングの答え はもちろん正しい。また、 Tim Schmelterのコメント もあなたの場合に良い提案です。

しかし、really文字列の最後のコンマを削除したい場合、最後のコンマのインデックスを見つける必要があります同様に削除します。

string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));

出力は次のようになります。

1,5,12,3412345

ここで demonstration

あなたがこのように望むことはあまりありそうにないが、私はそれを指摘したい。 String.Remove メソッドは元の文字列の文字を削除せず、新しい文字列を返します。

16
Soner Gönül

string.Remove();を試してください

string str = "1,5,12,34,";
string removecomma = str.Remove(str.Length-1);
MessageBox.Show(removecomma);
3
user2509901

TrimEndメソッドは、文字列ではなく入力文字配列を受け取ります。 Dot Net Perls の以下のコードは、TrimEndと同じ機能を実行する方法のより効率的な例を示しています。

static string TrimTrailingChars(string value)
{
    int removeLength = 0;
    for (int i = value.Length - 1; i >= 0; i--)
    {
        char let = value[i];
        if (let == '?' || let == '!' || let == '.')
        {
            removeLength++;
        }
        else
        {
            break;
        }
    }
    if (removeLength > 0)
    {
        return value.Substring(0, value.Length - removeLength);
    }
    return value;
}
2
bayu

または、次の方法で最初にChar配列に変換できます。

string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];

これで、各文字indexedが得られました。

SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','

遊びましょう

0
Faisal Ashfaq