删除字符串c#中的最后一个特定字符

时间:2013-11-27 15:28:32

标签: c# trim

我使用WinForms c#。我有如下字符串值,

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

我需要删除字符串中的最后一个逗号。那我怎么能删除它?

9 个答案:

答案 0 :(得分:193)

尝试string.TrimEnd()

Something = Something.TrimEnd(',');

答案 1 :(得分:15)

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));

输出将是;

1,5,12,3412345

这里有 demonstration

你不太想要这种方式,但我想指出它。请记住,String.Remove方法不会删除原始字符串中的任何字符,而是返回新字符串。

答案 2 :(得分:2)

尝试string.Remove();

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

答案 3 :(得分:2)

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;
}

答案 4 :(得分:1)

尝试以下

.. TrimEnd(“,”。ToCharArray());

答案 5 :(得分:0)

或者您可以先将其转换为Char Array:

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

现在你有了每个角色indexed

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

玩它

答案 6 :(得分:0)

末尾有空格时。您可以使用beliow。

ProcessStr = ProcessStr.Replace(" ", "");
Emails     = ProcessStr.TrimEnd(';');

答案 7 :(得分:0)

试试这个, stringSomething1=Something.Substring(0,Something.Length - 1);

答案 8 :(得分:-1)

Dim psValue As String = "1,5,12,34,123,12"
psValue = psValue.Substring(0, psValue.LastIndexOf(","))

输出:

1,5,12,34,123