static void Main()
{
string str;
str = Console.ReadLine();
while (str != null)//HERE!
{
str = str.Remove(0, 1);
str = str.Remove(str.Length - 1, 1);
string[] value = str.Split(',');
int[] intval = new int[value.Length];
for (int i = 0; i < value.Length; ++i)
{
bool re = int.TryParse(value[i], out intval[i]);
Console.WriteLine(intval[i]);
}
str = Console.ReadLine();
}
}
Привет, в программе выше, я хочу судить, есть ли что-то, что не читается в консоли, используя "str! = Null".
Однако ReadLine () вернула мне «» вместо нуля, и программа может войти в цикл while и сгенерировать неправильный результат.
Как я могу это исправить?
4 ответа
while(!string.IsNullOrEmpty(str))
Проверьте это для обоих с помощью встроенного метода
Если он возвращается пустым, они просто нажимают ввод, и в любом случае это ваш дозорный, так что вы можете потерпеть неудачу.
while (!string.IsNullOrEmpty(str))
{
...
}
ReadLine блокируется, пока пользователь не нажмет клавишу ввода. Итак, если вы просто нажмете клавишу ввода, вы получите пустую строку.
Из документов:
Если нажать символ CTRL + Z, когда метод считывает ввод с консоли, метод возвращает пустую ссылку (Nothing в Visual Basic). Это позволяет пользователю предотвратить дальнейший ввод с клавиатуры при вызове метода ReadLine в цикле.
Таким образом, вы действительно можете получить нулевую ссылку при вызове ReadLine (). Однако метод String.IsNullOrEmpty проверит оба случая за вас.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.