如何删除字符串中的所有内容,直到C#中的最后一个逗号



所以我需要删除字符串的所有内容,直到最后一个逗号。。。(我正在从一个不知道有多少逗号的文件中读取字符串。(我试过使用.Trim/.TrimEnd,但两者都没有达到我想要的效果。

下面是一个看起来有点像的例子:string example = object,1,4, 6,9-6, whg,19;

我试图获取的字符串:object

所以修剪应该忽略所有东西,直到最后一个逗号。

我尝试过的:

string exampleTrimmed = example.TrimEnd(',');

输出►object,1,4, 6,9-6, whg19

string exampleTrimmed = example.Trim(',');

输出(不确定(►object14 69-6 whg19

您想要的输出("object"(与您的描述不匹配-要获得它,您需要在第一次出现,之后剥离所有内容(包括它(。例如,如果您保证字符串中有,,则可以使用String.SubstringString.IndexOf:

var s = "object,1,4, 6,9-6, whg,19";
Console.WriteLine(s.Substring(0, s.IndexOf(','))); // prints "object"

如果你想得到最后一个逗号后的所有内容,你可以使用String.LastIndexOf:

Console.WriteLine(s.Substring(s.LastIndexOf(',') + 1)); // prints "19"

如果你想要的只是"object",为什么不用","分割,然后像这样调用索引0处的数组:

string example = "object,1,4, 6,9-6, whg,19";
string[] parsed = example.Split(',');
Console.WriteLine(parsed[0]);

输出:object

编辑:您说"所需字符串:object",但也说要忽略所有内容,直到最后一个逗号。

执行以上操作但使用此操作:Console.WriteLine(parsed[parsed.Length-1]);输出19

你说的"最后一个";逗号并且通过";直到";?你的例子与你的措辞不符。你的意思是";不包含逗号的最长前缀";?

然后你可以使用s[..s.IndexOf(',')];

或者为了更安全,s[..((s.IndexOf(',') is int i && i < 0) ? s.Length : i)];

相关内容

最新更新