Как определить, что нулевой символ не дает ошибки в предложении

** Я хотел проверить предложение, содержит ли один нулевой символ между двумя словами. Я новичок. Таким образом, примеров этой проблемы не так много. **

Я использовал String.IsNullOrEmpty, чтобы определить пустоту строки. Однако я поступил неправильно.

Можете ли вы помочь мне об этом?

** Редактировать: я прошу прощения за мою ошибку. Этот вопрос нуждается в примере. Например; Пишу в текстовое поле "Это хорошо". Определяет нулевые символы между "Это" и "есть", "И" и "хорошо". Итак, выдает сообщение об ошибке. Тем не менее, если я пишу один символ, это не дает мне сообщение об ошибке.

PS: это сообщение об ошибке означает метку. Если он содержит нулевой символ, красная метка показывает себя. Еще, зеленая метка показывает себя. **

Редактировать 2

Public Static bool IsAllLetters(string s) 

{ foreach (char c in s) { if (!char.IsLetter(c) return false; return true; }

Я определяю, содержит ли строка букву или нет. Если он содержит символ числа, это дает ошибку.

Во всяком случае, это объясняет, почему я использовал функцию IsAllLetter.

Затем я использовал этот пример кода.

Bool exp = IsAllLetters(explanation_text.Text);

İf (exp == false){ // wrong data } 

Else { // correct data } 

Итак, какой код я должен изменить? Или какой код я должен добавить?

1 ответ

Форматирование вашего кода немного грубовато, но похоже, что ваш foreach возвращается преждевременно, когда строка имеет длину больше 1

foreach (char c in s)
   { if (!char.IsLetter(c) return false; return true; }

Приведенный выше код проверяет только первый символ строки. Вместо этого вы хотите, чтобы IsAllLetters возвращал true, только если все символы были отсканированы.

public static bool IsAllLetters(string s)
{
    foreach (char c in s)
        if (!char.IsLetter(c)) return false;

    return true;
}
Другие вопросы по тегам