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

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

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

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

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

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

Изменить 2

Public Static bool IsAllLetters(string s) 

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

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

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

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

Bool exp = IsAllLetters(explanation_text.Text);

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

Else { // correct data } 

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


person raskolnikov    schedule 10.07.2017    source источник
comment
Что такое нулевой символ? Я думаю, вы не имеете в виду \0   -  person Tim Schmelter    schedule 10.07.2017
comment
Нулевой символ — это не то же самое, что нулевая строка.   -  person mjwills    schedule 10.07.2017
comment
Возможный дубликат C# — чему равно \0?   -  person mjwills    schedule 10.07.2017
comment
Разместите свой код и объясните, в чем проблема. Разместите воспроизводимый пример. В строке нет такого понятия, как нулевой символ. Есть персонаж с именем NUL, но он ничем не отличается от любого другого персонажа.   -  person Panagiotis Kanavos    schedule 10.07.2017
comment
Под Null вы действительно имеете в виду пробелы? (пробел, табуляция, новая строка и т. д.)   -  person Colin Mackay    schedule 10.07.2017
comment
Не используйте символ NULL, если вы просто имеете в виду пробел. Что за ошибка и какой код ее вызывает? Метка не имеет проблем с пробелами   -  person Tim Schmelter    schedule 10.07.2017


Ответы (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;
}
person RamblinRose    schedule 10.07.2017
comment
Я не хочу получать сообщение об ошибке, когда я оставил черный между двумя словами в предложении. - person raskolnikov; 10.07.2017