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

时间:2013-04-16 01:49:01

标签: c# string contains

我有一种情况需要尝试过滤假的SSN号码。从我到目前为止看到的它们是假的,它们都是相同的数字或123456789.我可以过滤掉最后一个,但有没有一种简单的方法来确定所有字符是否相同?

6 个答案:

答案 0 :(得分:42)

return(ssn。Distinct()。Count()== 1)

答案 1 :(得分:5)

这种方法可以解决问题:

public static bool AreAllCharactersSame(string s)
{
    return s.Length == 0 || s.All(ch => ch == s[0]);
}

说明:如果字符串的长度为0,那么当然所有字符都是相同的。否则,如果字符串的字符都等于第一个字符串,则它们都是相同的。

答案 2 :(得分:3)

要摆脱这个问题,因为我们正在谈论SSN。您可以检查并使用this CodeProject演示项目来验证SSN。虽然这是在VB.Net中,但我想你可以想出同样的想法。

答案 3 :(得分:1)

抓住第一个字符,然后循环播放。

var ssn = "222222222";
var fc = ssn[0];

for(int i=0; i<ssn.Length; i++)
{
    if(ssn[i]!=fc)
        return false;
}

return true;

当然您还应该检查ssn

的长度

答案 4 :(得分:1)

char[] chrAry = inputStr.ToCharArray();
char first = chrAry[0];

var recordSet = from p in chrAry where p != first select p;
return !recordSet.Any();

答案 5 :(得分:-1)

您对此有何看法?

"jhfbgsdjkhgkldhfbhsdfjkgh".Distinct().Skip(1).Any()

要避免计算字符总数?您应该先检查null还是空白。