繁体   English   中英

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

[英]How can I remove everything of a string until the last comma in C#?

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

这是一个看起来像的string example = object,1,4, 6,9-6, whg,19;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)];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM