Определить, все ли символы в строке одинаковы
У меня есть ситуация, когда мне нужно попытаться отфильтровать поддельные номера SSN. Из того, что я видел до сих пор, если они поддельные, они все одинаковы или 123456789. Я могу отфильтровать последний, но есть ли простой способ определить, все ли символы одинаковы?
6 ответов
этот метод должен делать трюк:
public static bool AreAllCharactersSame(string s)
{
return s.Length == 0 || s.All(ch => ch == s[0]);
}
объяснение: если длина строки равна 0, то, конечно, все символы одинаковы. В противном случае символы строки будут одинаковыми, если они все равны первому.
чтобы избавиться от этой проблемы, так как мы говорим о SSN. Вы можете проверить и использовать этой демонстрационный проект CodeProject для проверки SSN. Хотя это в VB.Net думаю, ты можешь придумать то же самое.
захватить первый символ, и петли.
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()
чтобы избежать подсчета общего количества символов? вы должны проверить перед null или empty.