Как проверить строку на пустоту с
Перейти к содержимому

Как проверить строку на пустоту с

  • автор:

Как проверить пустая ли строка?

Пишу игру крестики-нолики на языке c# и в нём есть бот который рандомно ставит 0 , а игрок X . Проблема в том, что иногда бот ставит 0 в клетку, где игрок уже поставил X . Каким образом можно исправить?

Отслеживать
user361068
задан 21 сен 2020 в 5:17
Abror Ganiev Abror Ganiev
3 1 1 серебряный знак 3 3 бронзовых знака
string.IsEmpty(string) . Это равносильно (str == null || str.Length == 0)
21 сен 2020 в 5:26
@return string.IsNullOrEmpty равносильно (str == null || str.Length == 0)
21 сен 2020 в 6:44

Ответ: нужно предварительно проверить пустая клетка или нет, если не пустая — то менять координаты и повторять попытку снова.

21 сен 2020 в 7:05
@nick_n_a да, забыл) обычно я просто ReadOnlySpan использую.
21 сен 2020 в 8:15

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

У класса String есть несколько методов, позволяющих проверить состояние переменной этого типа:

  1. String.IsNullOrEmpty()
string targetString = null; var result = String.IsNullOrEmpty(targetString); 

Как правильно написали в коментариях это равносильно:

return (targetString == null || targetString.Length == 0); 

Этот метод предварительно проверяет не null ли ссылка на строку, а потом уже её содержимое (в данном примере result равен true ). Но не всегда содержимое строки для пользователя является «не пустым», поэтому существует метод номер 2:

  1. String.IsNullOrWhiteSpace()
string targetString = " "; var result = String.IsNullOrWhiteSpace(targetString); 

Вызов этого метода равносилен такой функции:

return (String.IsNullOrEmpty(targetString) || targetString.Trim().Length == 0); 

То есть он проверяет не null ли строка, есть ли у неё содержимое и не является ли оно «пустыми» символами.

Как проверить строку на пустоту?

Всем доброго времени суток! Мне нужно вводить имя книги и проверять в блоке try, если введена пустая строка или клавиша ENTER, то выводилось сообщение о неверном вводе. У меня получается так что блок catch почему то пропускается и не ловит ошибку. Заранее спасибо за ответы!

char* namebook = (char*)malloc(20);//буфер записи названи puts("Введите название книги"); try //проверка исключения < scanf("%s", namebook); int a = strlen(namebook); if (a == 0) throw(char*)"Вы ввели пустую строку"; >catch (const char* exception)

Отслеживать

задан 24 мая 2022 в 20:47

13 4 4 бронзовых знака

stackoverflow.com/questions/7970617/… В первом же ответе показано решение вашей задачи

24 мая 2022 в 20:56

scanf не может вводить пустые строки

24 мая 2022 в 20:59

Я попытася вводить через cin и сделал проверку на конец строки (написал «\0») и все равно при нажатии ENTER не выводится сообщение об исключении

24 мая 2022 в 21:12

Покажите, как именно через cin .

Determine whether a string is empty or null in C#

This post will discuss how to determine whether a string is empty or null in C#.

1. Using String.IsNullOrEmpty() method

The standard solution to determine whether a string is empty or null is using the String.IsNullOrEmpty() method. It returns true if the specified string is null or an empty string; otherwise, false .

using System ;
public class Example
public static void Main ( )
if ( string . IsNullOrEmpty ( s ) ) < Console . WriteLine ( "String is either empty or null" ) ;

2. Using or operator

Alternatively, we can use the or operator to determine whether a string is an empty string, or the string is null. The following sample illustrates its usage.

using System ;
public class Example
public static void Main ( )
if ( s == null || s == «» ) < Console . WriteLine ( "String is null or empty" ) ;

Starting with C# 9, you can use pattern matching for this. For example, the following code uses the alternate syntax for a null check with disjunctive or pattern.

using System ;
public class Example
public static void Main ( )
if ( s is null or «» ) < Console . WriteLine ( "String is either empty or null" ) ;

3. Using String.IsNullOrWhiteSpace() method

Additionally, if you need to check for whitespace characters, use the String.IsNullOrWhiteSpace() method. It returns true if the specified string is null, empty, or consists only of white-space characters; otherwise, false .

using System ;
public class Example
public static void Main ( )
if ( string . IsNullOrWhiteSpace ( s ) ) < Console . WriteLine ( "String is null, empty, or consist of only whitespaces" ) ;

That’s all about determining whether a string is empty or null in C#.

Average rating 5 /5. Vote count: 16

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Tell us how we can improve this post?

Thanks for reading.

To share your code in the comments, please use our online compiler that supports C, C++, Java, Python, JavaScript, C#, PHP, and many more popular programming languages.

Like us? Refer us to your friends and support our growth. Happy coding 🙂

Software Engineer | Content Writer | 12+ years experience

Как проверить объект на пустоту в JavaScript

Эту задачу можно решить, как с помощью сторонних библиотек, так и на нативном языке. Проверить объект на пустоту на JavaScript (js) можно при помощи метода Object.keys().

Проверка объектов на пустоту в JavaScript

В принципе, для нативного js достаточно использовать новый метод Object.keys().

const empty = <>; Object.keys(empty).length === 0 && empty.constructor === Object;

Для чего необходима дополнительная проверка конструктора? В JavaScript имеется девять встроенных конструкторов.

new Object(); new String(); new Number(); new Boolean(); new Array(); new RegExp(); new Function(); new Date();

Мы можем создать пустой объект с помощью new Object(), но стоит отметить, что:

Никогда не следует создавать объект с помощью конструктора. Это считается плохой практикой.

const obj = new Object(); Object.keys(obj).length === 0; // true

При обычном использовании Object.keys() он возвращает true, если объект пуст. Но что происходит, когда мы создаем новый экземпляр объекта с помощью других вышеуказанных конструкторов.

function badEmptyCheck(value) < return Object.keys(value).length === 0; >badEmptyCheck(new String()); // true badEmptyCheck(new Number()); // true badEmptyCheck(new Boolean()); // true badEmptyCheck(new Array()); // true badEmptyCheck(new RegExp()); // true badEmptyCheck(new Function()); // true badEmptyCheck(new Date()); // true

Строго говоря, такая попытка проверить объект на пустоту в JavaScript выдает ложное срабатывание true.

Решение проблемы ложных срабатываний

Для того, чтобы легко исправить это, следует добавить проверку конструктора.

function goodEmptyCheck(value) < Object.keys(value).length === 0 && value.constructor === Object; // Проверка конструктора >goodEmptyCheck(new String()); // false goodEmptyCheck(new Number()); // false goodEmptyCheck(new Boolean()); // false goodEmptyCheck(new Array()); // false goodEmptyCheck(new RegExp()); // false goodEmptyCheck(new Function()); // false goodEmptyCheck(new Date()); // false

Отлично! Теперь мы получили верный ответ.

Варианты проверить объект на пустоту на JavaScript (js)

Как проверить объект на пустоту в JavaScript при других значениях

Давайте протестируем этот метод с некоторыми другими значениями.

function isEmptyObject(value)

Пока все выглядит хорошо. Для не объектов такой код возвращает false.

isEmptyObject(100); // false isEmptyObject(true); // false isEmptyObject([]); // false

Но с таким подходом следует быть осторожным! Такие значения вызовут ошибку.

Проверка объекта на null и undefined

Чтобы избежать ошибки TypeError можно применить дополнительную проверку.

let value; value && Object.keys(value).length === 0 && value.constructor === Object; // Проверка на null и undefined value = null; // null value = undefined; // undefined

В этом случае никаких ошибок возникать не будет.

Использование сторонних библиотек

Стоит отметить множество внешних библиотек, которые позволяют осуществить проверку объекта на пустоту в js.

Lodash

_.isEmpty(<>); // true

Underscore

_.isEmpty(<>); // true

jQuery

jQuery.isEmptyObject(<>); // true

Чистый JavaScript или библиотеки

Что именно выбрать, зависит от обстоятельств. Я отдаю предпочтение нативному JavaScript и стараюсь использовать его всегда. Что ни говори, но подключение внешних библиотек не всегда оправдано и негативно сказывается на скорости загрузки сайтов и их работе. Да и изучать документацию и настраивать библиотеку для таких мелочей особого смысла тоже нет. Но если разрабатываемое приложение уже предполагает использование сторонних библиотек, то почему бы не задействовать их. В любом случае окончательный выбор того, как в JavaScript проверить объект на пустоту зависит от личных предпочтений каждого и конкретной задачи.

Прочие методы

for (let key in object) < if (object.hasOwnProperty(key)) < return false; >return true; >

Кроссбраузерность

В общей сложности, на момент написания статьи метод Object.keys() получил полную поддержку браузеров, включая Internet Explorer.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *