Ho una situazione in cui ho bisogno di provare e filtrare i numeri SSN falsi. Da quello che ho visto finora se sono falsi sono tutti lo stesso numero o 123456789. Posso filtrare per l'ultimo, ma c'è un modo semplice per determinare se tutti i personaggi sono uguali?C# determina se tutti i caratteri in una stringa sono gli stessi
risposta
ritorno (SSN. Distinct() Count() == 1)
Prendi il primo carattere e loop.
var ssn = "222222222";
var fc = ssn[0];
for(int i=0; i<ssn.Length; i++)
{
if(ssn[i]!=fc)
return false;
}
return true;
, naturalmente, si dovrebbe anche controllare la lunghezza di ssn
La stringa è nulla, questa interruzione: p – Jay
Ya .. La stringa vuota interromperà anche questo. OP dovrebbe occuparsi di questo problema. –
Questo metodo dovrebbe fare il trucco:
public static bool AreAllCharactersSame(string s)
{
return s.Length == 0 || s.All(ch => ch == s[0]);
}
Spiegazione: se la lunghezza di una stringa è 0, poi, naturalmente, tutti i personaggi sono la stesso. Altrimenti, i caratteri di una stringa sono tutti uguali se sono tutti uguali al primo.
Per GID liberarsi di questo problema, dal momento che stiamo parlando di SSN. È possibile verificare e utilizzare il progetto dimostrativo CodeProject this per convalidare SSN. Anche se questo è in VB.Net, immagino che tu possa venire con la stessa idea. !
La codifica delle restrizioni qui è probabilmente una soluzione migliore di qualsiasi filtro che si pensa. – AShelly
ma come si convalida un SSN se i valori immessi erano falsi? per esempio 123456798? Ci sono un certo numero di regole che dobbiamo implementare con la nostra validazione. Controllare se tutti i caratteri sono gli stessi non basterebbe a renderlo affidabile. – lexeRoy
char[] chrAry = inputStr.ToCharArray();
char first = chrAry[0];
var recordSet = from p in chrAry where p != first select p;
return !recordSet.Any();
s = null && s.Length> 1 && s [s.Length - 1] == s [0] – Jay
utilizzano solo il primo carattere della stringa e utilizzare le risposte a questa domanda precedente per contare il numero di occorrenze: http://stackoverflow.com/questions/10391481/number-of-occurrences-of-a-character-in-a-string – JeffO
Quante volte il problema sarà in altri luoghi? Se necessario, è necessario compensare l'incertezza richiesta ... – Jay