[英]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.Substring
和String.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.