确定字符串中的所有字符是否相同

本文关键字:字符 是否 字符串 | 更新日期: 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()

避免计算整个字符数?