2016-07-06 5 views
0

мне нужно проверить, если строка имеет по крайней мере два алфавитных символов, как a1763r или ab1244
Я думал, я хотел бы использовать что-то вроде:Проверьте, если строка содержит по крайней мере два альфа-символы

myString = "a123B"; 
myString.Any(char.IsDigit).Count(); 

но я 'm using .net 2.0, поэтому этот метод Any() не существует.

Есть ли что-то эквивалентное?

+2

Попробуйте программировать. Например, вы можете написать цикл, который проверяет каждый символ. –

+0

Вы можете использовать регулярное выражение ... –

+0

Но зачем он когда-либо. – SimpleVar

ответ

4

Не знаю альфа или что нет, но вы можете подсчитать, сколько символы цифр без Linq так:

string str = "a123B"; 
int digits = 0; 
foreach (char c in str) 
    if (char.IsDigit(c)) 
     digits++; 
print(digits); // 3 
+0

благодарит человека, что тоже хорошо работает. –

0

Используйте regexpressions

две буквы: Regex.IsMatch(myString, "[A-Za-z].*?[A-Za-z]");

два цифры: Regex.IsMatch(myString, "\d.*?\d");

+0

Это работало так хорошо. Благодарю. –

2

Вы можете создать простую вспомогательную функцию, которая пересекает вашу строку, принимая в минимуме чтобы встретиться. Она возвращает логическое значение в соответствии с типом выходного поведения от .Any()

public bool ContainsMinAlphaCharacters(string input, int threshold) 
{ 
    var count = 0; 
    foreach (var character in input) 
    { 
     if (char.IsDigit(character)) count++; 
     if (count >= threshold) 
     { 
      return true; 
     } 
    } 

    return false; 
} 
+0

это именно то, что я хочу, спасибо! –

0

не очень. Вам нужно будет пройти через строку и проверить, является ли каждый символ цифрой, чтобы получить счет.

Смежные вопросы