2013-11-27 8 views
45

を最後のカンマを削除し、私は、文字列の最後のコンマを削除する必要があり、以下のように私は#.I CのWinFormsを使用し、文字列のC#のWinFormsで

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

を文字列値を持っています。どうすれば削除できますか?

+8

なぜこのような 'string'がありますか?コンマを 'int'に連結するループのために私は仮定します。代わりに 'string.Join("、 "、ints)'を使うことができます。これは、最初の場所でカンマを後にするのを避けます。 –

答えて

144

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

Something = Something.TrimEnd(','); 
+1

これは、文字列が実際にカンマで終わるかどうかを事前に知らない状況を含め、すべての文字列で機能するため、最適なソリューションです。 –

3

string.Remove();

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

King King's answerを試してみてはもちろん、右のです。また、Tim Schmelter's commentもお勧めです。

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

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

出力になります。ここでdemonstration

1,5,12,3412345 

このようにするのはあまりありませんが、私はそれを指摘したいと思います。そして、String.Removeメソッドは元の文字列内の文字を削除しないことを覚えておいてください。新しい文字列を返します。

1

それとも、最初でchar型の配列に変換することができます:今、あなたはそれぞれの文字indexed持っ

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

:その周りに

0

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

プレイをTrimEndメソッドは文字ではなく、を受け取り、文字列。 参照:http://www.dotnetperls.com/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; 
}