确定字符串中的所有字符是否相同
本文关键字:字符 是否 字符串 | 更新日期: 2023-09-27 18:09:15
我有一种情况,我需要尝试过滤掉假的SSN号码。从我目前看到的情况来看,如果是假的,都是同一个号码,或者123456789。我可以过滤最后一个字符,但是否有一种简单的方法来确定所有字符是否相同?
返回(ssn.Distinct () .Count () = = 1)
这个方法应该可以做到:
public static bool AreAllCharactersSame(string s)
{
return s.Length == 0 || s.All(ch => ch == s[0]);
}
说明:如果字符串的长度是0,那么所有的字符当然都是一样的。否则,如果字符串中的所有字符都等于第一个字符,则它们都是相同的。
为了摆脱这个问题,因为我们正在谈论SSN。您可以检查并使用这个CodeProject演示项目来验证SSN。虽然这是用VB写的。我想你也会有同样的想法。
抓取第一个字符,然后循环。
var ssn = "222222222";
var fc = ssn[0];
for(int i=0; i<ssn.Length; i++)
{
if(ssn[i]!=fc)
return false;
}
return true;
当然你也应该检查ssn
char[] chrAry = inputStr.ToCharArray();
char first = chrAry[0];
var recordSet = from p in chrAry where p != first select p;
return !recordSet.Any();
你怎么看:
"jhfbgsdjkhgkldhfbhsdfjkgh".Distinct().Skip(1).Any()
避免计算整个字符数?