Csharp/C#教程:发生字符串后删除文本分享


发生字符串后删除文本

我有一个字符串,具有以下格式:

string sample = "A, ABC, 1, ACS,," 

如你所见,这个角色有5个出现。 我需要在第4次发生后删除所有内容 ,以便最终结果为:

 string result = fx(sample, 4); "A, ABC, 1, ACS" 

没有foreach可能吗? 提前致谢。

你可以这样做:

 sample.Split(',').Take(4).Aggregate((s1, s2) => s1 + "," + s2).Substring(1); 

这将把你的字符串分成逗号,然后只取前四个部分( "A"" ABC"" 1"" ACS" ),将它们连接到一个带有Aggregate字符串(结果: ",A, ABC, 1, ACS" )并返回除第一个字符以外的所有内容。 结果: "A, ABC, 1, ACS"

使用String.Substring方法

https://msdn.microsoft.com/en-us/library/system.string.substring(v=VS.100).aspx

如果最后总是两个逗号,你可以使用string.replace

https://msdn.microsoft.com/en-us/library/fk49wtc1.aspx

如果您使用此问题中的GetNthIndex方法,则可以使用String.Substring

 public int GetNthIndex(string s, char t, int n) { int count = 0; for (int i = 0; i < s.Length; i++) { if (s[i] == t) { count++; if (count == n) { return i; } } } return -1; } 

所以你可以做到以下几点:

 string sample = "A, ABC, 1, ACS,,"; int index = GetNthIndex(sample, ',', 4); string result = sample.Substring(0, index); 

如果没有足够的逗号来满足计数,则假设您要返回完整的字符串

上述就是C#学习教程:发生字符串后删除文本分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

 String fx(String str, Int32 commaCount) { if (String.IsNullOrEmpty(str)) return str; var i = 0; var strLength = str.Length; while ((commaCount-- > 0) && (i != -1) && (i < strLength)) i = str.IndexOf(",", i + 1); return (i == -1 ? str : str.Substring(i)); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/992356.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐