如何识别字符串是否包含特定字符的多个实例?
我想检查字符串中是否包含多个字符? 如果我有一个字符串12121.23.2所以我想检查它是否包含多个。 在字符串中。
您可以将IndexOf
与LastIndexOf
进行比较,以检查string
是否存在多个特定字符而不进行显式计数:
var s = "12121.23.2"; var ch = '.'; if (s.IndexOf(ch) != s.LastIndexOf(ch)) { ... }
您可以使用LINQ轻松计算角色的出现次数:
string foo = "12121.23.2"; foo.Count(c => c == '.');
如果性能很重要,请自行编写:
public static bool ContainsDuplicateCharacter(this string s, char c) { bool seenFirst = false; for (int i = 0; i < s.Length; i++) { if (s[i] != c) continue; if (seenFirst) return true; seenFirst = true; } return false; }
这样,你只需要通过一个字符串的内容,然后尽早拯救。 在最坏的情况下,您只访问所有字符一次。 在@dasblinkenlight的回答中,您将访问所有字符两次,并且在@ mensi的答案中,您必须计算所有实例,即使您有两个,也可以停止计算。 此外,使用Count
扩展方法涉及使用Enumerable
,其运行速度比直接访问特定索引处的字符要慢。
然后你可以写:
string s = "12121.23.2"; Debug.Assert(s.ContainsDuplicateCharacter('.')); Debug.Assert(s.ContainsDuplicateCharacter('1')); Debug.Assert(s.ContainsDuplicateCharacter('2')); Debug.Assert(!s.ContainsDuplicateCharacter('3')); Debug.Assert(!s.ContainsDuplicateCharacter('Z'));
我还认为拥有一个能够准确解释您想要实现的function的function更为出色。 但是,您也可以在这样的函数中包装任何其他答案。
上述就是C#学习教程:如何识别字符串是否包含特定字符的多个实例?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
Boolean MoreThanOne(String str, Char c) { return str.Count(x => x==c) > 1; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1030666.html