发生字符串后删除文本
我有一个字符串,具有以下格式:
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