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

C# 删除字符串c中的最后一个特定字符#,c#,trim,C#,Trim,我使用WinForms c#。我有如下字符串值 string Something = "1,5,12,34,"; 我需要删除字符串中的最后一个逗号。那么如何删除它呢?试试string.TrimEnd(): 尝试string.Remove() 这当然是对的。对你来说,这也是一个很好的建议 但是如果你想真的删除字符串中的最后一个逗号,你应该找到最后一个逗号的索引,然后像这样删除 string s = "1,5,12,34,12345"; int index = s.LastIndexOf(',')

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

string Something = "1,5,12,34,";
我需要删除字符串中的最后一个逗号。那么如何删除它呢?

试试
string.TrimEnd()

尝试
string.Remove()

这当然是对的。对你来说,这也是一个很好的建议

但是如果你想真的删除字符串中的最后一个逗号,你应该找到最后一个逗号的索引,然后像这样删除

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

1,5,12,3412345
这里有一个


你不太可能想这样,但我想指出一点。请记住,该方法不会删除原始字符串中的任何字符,而是返回新字符串。

或者您可以先通过以下方法将其转换为字符数组:

string Something = "1,5,12,34,";
char[] SomeGoodThing=Something.ToCharArray[];
现在,每个字符都已编入索引

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

围绕它播放

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;
}
输出:

1,5,12,34,123
试试下面


某物..修剪(“,”.ToCharArray())

当末尾有空格时。你可以用beliow

ProcessStr = ProcessStr.Replace(" ", "");
Emails     = ProcessStr.TrimEnd(';');
试试这个,
字符串Something1=Something.Substring(0,Something.Length-1)

为什么有这样一个
字符串
?我假设是因为一个循环将逗号连接到
int
s。您可以改用
string.Join(“,”,ints)
。这就避免了首先使用逗号。这是最好的解决方案,因为它适用于所有字符串,包括您事先不知道字符串是否以逗号结尾的情况。这就是为什么我仍然在搜索解决方案,即使是我可以轻松编写的内容。通常是其他人解决了这个问题。:)所以单引号不是一个错误。今天我学习了char和string分别用单引号和双引号定义。问题是关于C#而不是VB。
Dim psValue As String = "1,5,12,34,123,12"
psValue = psValue.Substring(0, psValue.LastIndexOf(","))
1,5,12,34,123
ProcessStr = ProcessStr.Replace(" ", "");
Emails     = ProcessStr.TrimEnd(';');