私はWinFormsc#を使用しています。以下のような文字列値があります。
string Something = "1,5,12,34,";
文字列の最後のカンマを削除する必要があります。では、どうすれば削除できますか?
私はWinFormsc#を使用しています。以下のような文字列値があります。
string Something = "1,5,12,34,";
文字列の最後のカンマを削除する必要があります。では、どうすれば削除できますか?
回答:
試してみてくださいstring.TrimEnd()
:
Something = Something.TrimEnd(',');
キングキングの答えはもちろん正しいです。また、ティムシュメルターのコメントもあなたの場合の良い提案です。
しかし、本当に 文字列の最後のコンマを削除したい場合のインデックスを見つけて、次のように削除する必要があります。
string s = "1,5,12,34,12345";
int index = s.LastIndexOf(',');
Console.WriteLine(s.Remove(index, 1));
出力は次のようになります。
1,5,12,3412345
ここにdemonstration
。
あなたがこのように望む可能性は非常に低いですが、私はそれを指摘したいと思います。また、String.Remove
メソッドは元の文字列の文字を削除せず、新しい文字列を返すことを忘れないでください。
TrimEndメソッドは、文字列ではなく入力文字配列を受け取ります。以下のコードドットネットパールズは、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;
}
または、最初に次の方法でChar配列に変換できます。
string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
今、あなたは各キャラクターを持っていますindexed
:
SomeGoodThing[0] -> '1'
SomeGoodThing[1] -> ','
それをいじって
Dim psValue As String = "1,5,12,34,123,12"
psValue = psValue.Substring(0, psValue.LastIndexOf(","))
出力:
1,5,12,34,123
string
ですか?カンマをint
sに連結するループがあるためだと思います。string.Join(",", ints)
代わりに使用できます。これにより、そもそも末尾のコンマが回避されます。