Empty string в отеле что это значит

Строки в языке C++ (класс string)

В языке C++ для удобной работы со строками есть класс string, для использования которого необходимо подключить заголовочный файл string.

Строки можно объявлять и одновременно присваивать им значения:

string S1, S2 = «Hello»;

Строка S1 будет пустой, строка S2 будет состоять из 5 символов.

Строки в языке C++ могут

Конструкторы строк

Конструкторы можно вызывать явно, например, так:

Неявно конструктор вызывается при объявлении строки с указанием дополнительных параметров. Например, так:

Подробней о конструкторах для строк читайте здесь.

Ввод-вывод строк

Строка выводится точно так же, как и числовые значения:

cout >» для объекта cin:

Можно считывать строки до появления символа конца строки при помощи функции getline. Сам символ конца строки считывается из входного потока, но к строке не добавляется:

Арифметические операторы

Подробней о методе resize.

clear

Подробней о методе clear.

empty

Подробней о методе empty.

push_back

Подробней о методе push_back.

append

Добавляет в конец строки несколько символов, другую строку или фрагмент другой строки. Имеет много способов вызова.

Подробней о методе append.

erase

Подробней о методе erase.

insert

Подробней о методе insert.

substr

Подробней о методе substr.

replace

Заменяет фрагмент строки на несколько равных символов, другую строку или фрагмент другой строки. Способы вызова аналогичны способам вызова метода append, только первыми двумя параметрами являются два числа: pos и count. Из данной строки удаляется count символов, начиная с символа pos, и на их место вставляются новые символы.

Подробней о методе replace.

Подробней о методе find.

rfind

Ищет последнее вхождение подстроки («правый» поиск). Способы вызова аналогичны способам вызова метода find.

Подробней о методе rfind.

find_first_of

Ищет в данной строке первое появление любого из символов данной строки str. Возвращается номер этого символа или значение string::npos.

find_last_of

Ищет в данной строке последнее появление любого из символов данной строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

Подробней о методе find_last_of.

find_first_not_of

Ищет в данной строке первое появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

find_last_not_of

Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

c_str

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

Источник

В С# следует ли использовать string.Empty или String.Empty или «» для инициализации строки?

В С# я хочу инициализировать строковое значение пустой строкой.

Как мне это сделать? Каков правильный путь и почему?

ОТВЕТЫ

Ответ 1

Используйте все, что вы и ваша команда найдете наиболее читаемыми.

Аргумент, что «» и » » легко ошибаются друг для друга, на самом деле не стирается. Если вы не используете пропорциональный шрифт (и я не работал с разработчиками, которые это делают), довольно легко понять разницу.

Ответ 2

Код С#

Код IL

Код сборки

Ответ 3

Основной характер кодирования заключается в том, что наша задача, как программисты, состоит в том, чтобы признать, что каждое принятое нами решение является компромиссом. [. ] Начните с краткости. Увеличьте другие размеры, необходимые при тестировании.

Ответ 4

Посмотрите эту ссылку для получения дополнительной информации: строка-пусто-против-пусто-цитаты

Ответ 5

Ответ 6

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

Как уже отмечали некоторые другие, между string.Empty и string.Empty нет никакой разницы.

Кроме того, и это малоизвестный факт, использование «вполне приемлемо. Каждый экземпляр объекта» «в других средах создает объект. Тем не менее,.NET ставит свои строки, поэтому будущие экземпляры будут вытаскивать одну и ту же неизменяемую строку из внутреннего пула, и любое поражение производительности будет незначительным. Источник: Брэд Абрамс.

Ответ 7

Я лично предпочитаю «», если нет веской причины для чего-то более сложного.

Ответ 8

Ответ 9

Почти каждый разработчик знает, что означает «». Я лично столкнулся со String.Empty в первый раз и должен был потратить некоторое время на поиск google, чтобы выяснить, действительно ли они являются тем же самым.

Ответ 10

Эта тема довольно старая и длинная, поэтому извините меня, если это поведение было упомянуто где-то в другом месте. (И укажите мне ответ, который охватывает это)

Я нашел разницу в поведении компилятора, если вы используете string.Empty или двойные кавычки. Разница проявляется, если вы не используете строковую переменную, инициализированную с помощью string.Empty или с двойными кавычками.

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

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

Ответ 11

Я выполнил этот очень простой тест, используя следующую функцию в консольном приложении:

Ответ 12

Любое из приведенных выше.

Есть много, много лучших вещей для понтификата. Например, какая цветная кора лучше всего подходит дереву, я думаю, что расплывчатый коричневый с оттенками моллюска.

Ответ 13

Я сильно предпочитаю String.Empty, помимо других причин, чтобы убедиться, что вы знаете, что это такое, и что вы случайно не удалили содержимое, но прежде всего для интернационализации. Если я вижу строку в кавычках, то мне всегда нужно задаться вопросом, является ли это новым кодом, и его следует поместить в таблицу строк. Поэтому каждый раз, когда код изменяется или просматривается, вам нужно искать «что-то в кавычках», и да, вы можете отфильтровать пустые строки, но я говорю людям, что хорошая практика никогда не ставить строки в кавычки, если вы не знаете, что они не будут локализованы.

Ответ 14

Никто не упоминал, что в VisualStudio String по-разному кодируется цвет, а затем строка. Это важно для читаемости. Кроме того, нижний регистр обычно используется для vars и типа, но не большой, но String.Empty является константой, а не var или type.

Ответ 15

Я не понимаю. Последнее самое быстрое: #

Ответ 16

Значения также идентичны: string.Empty == String.Empty == «»

Итак, если бы я был вашим начальником, вы писали бы string.Empty

Ответ 17

p.s. Я все время борюсь с такими «правильными».

Ответ 18

Ответ 19

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

Ответ 20

Я всегда использую имена типа BCL при доступе к статическим методам, свойствам и полям: String.Empty или Int32.TryParse(. ) или Double.Epsilon

Я всегда использую ключевые слова С# при объявлении новых экземпляров: int i = 0; или string foo = «bar»;

Я редко использую необъявленные строковые литералы, так как мне нравится сканировать код, чтобы объединить их в многократно используемые константы. Компилятор в любом случае заменяет константы литералами, поэтому это скорее способ избежать магических строк/чисел и дать им немного больше смысла с именем. Плюс изменение значений проще.

Ответ 21

Ответ 22

Я лично стал свидетелем «», что привело к (второстепенным) проблемам дважды. Однажды была из-за ошибки младшего разработчика, нового для командного программирования, а другая была простой опечаткой, но факт заключается в использовании string.Empty избежал бы обеих проблем.

Да, это очень важный вызов, но когда язык дает вам несколько способов сделать что-то, я склоняюсь к тому, который имеет наибольший контроль над компилятором и самое сильное применение во время компиляции. Это не «». Все это касается выражения конкретных намерений.

Если вы наберете string.EMpty или Strng.Empty, компилятор сообщит вам, что вы сделали это неправильно. Немедленно. Он просто не будет компилироваться. Как разработчик вы ссылаетесь на конкретное намерение, что компилятор (или другой разработчик) никоим образом не может неверно интерпретироваться, а когда вы делаете это неправильно, вы не можете создать ошибку.

Если вы наберете «, когда имеете в виду» » или наоборот, компилятор с радостью сделает то, что вы ему сказали. Другой разработчик может или не сможет понять ваши конкретные намерения. Создан баг.

Задолго до string.Empty было то, что я использовал стандартную библиотеку, которая определяла константу EMPTY_STRING. Мы по-прежнему используем эту константу в операторах case, где string.Empty не разрешено.

По возможности, поставите компилятор для работы на вас и устраните возможность человеческой ошибки, независимо от того, насколько она мала. ИМО, это превосходит «читаемость», как цитировали другие.

Специфичность и компиляция времени. Это то, что на ужин.

Ответ 23

Компилятор должен сделать их одинаковыми в долгосрочной перспективе. Выберите стандарт, чтобы ваш код был легко читаемым и придерживался его.

Ответ 24

Я просто смотрел на какой-то код, и этот вопрос появился у меня в голове, который я прочитал некоторое время назад. Это, безусловно, вопрос читаемости.

Рассмотрим следующий код С#.

Я лично считаю последнее менее двусмысленным и более легким для чтения.

Как отмечают другие, фактические различия незначительны.

Ответ 25

Ответ 26

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

Ответ 27

Ответ 28

Ответ 29

В то время как разница очень, очень немного, разница все еще существует.

Источник

7 Быстрых способов проверить, пуста ли строка в Python

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

Вступление

Строки Python являются неизменяемыми, то есть мы можем изменять строки в соответствии с выполняемыми операциями. Манипуляция строками-самая важная функция python. Вы можете манипулировать строкой с помощью многих методов, таких как методы нарезки строк, циклического перебора элементов и методы строк. Но. Иногда мы приходим к ситуации, когда нам нужно проверить, пуста ли строка Python или нет, а список пуст . В этой статье мы обсудим способы проверки того, является ли строка пустой или нет в Python.

7 Различных способов проверить, пуста ли строка или нет

Давайте обсудим некоторые способы, с помощью которых мы можем проверить, является ли строка пустой строкой или нет.

1. Использование метода len()

Мы будем вычислять длину строки с помощью len() в python. Затем мы проверим, если длина строки равна 0, то строка пуста; в противном случае-нет.

Давайте рассмотрим пример для лучшего понимания концепции:

Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Затем мы вычислили длину обеих строк с помощью функции len() в python. Затем мы применили цикл if-else и проверили, если длина строки равна 0, то строка печати пуста, а если она не пуста, то печать не пуста. В len () пробелы не рассматриваются как пустые в строке, что дает вывод как не пустая строка. Наконец, мы напечатали выходные данные обеих строк.

2. Использование оператора not Для Проверки Того, Является Ли Строка Пустой Строкой В Python

Давайте рассмотрим пример для лучшего понимания концепции:

Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Затем мы применили условие if else, в котором мы проверили, если нет в строке, то строка пуста. В противном случае он не пуст. Оператор not также не обрабатывает пробелы как пустую строку, так что выходные данные будут приходить как не пустая строка второй входной строки. Наконец-то мы напечатали результат.

3. Использование функции and operator + strip() для проверки того, является ли строка пустой строкой в python

Иногда мы видим, что пробелы, присутствующие в строке, не рассматриваются как пустые строки. Таким образом, когда мы проверяем пустую строку, мы также можем проверить наличие пробелов с помощью функции strip ().

Давайте рассмотрим пример для лучшего понимания концепции:

Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы применили условие if-else и проверили с помощью функции strip (), что строка пуста или нет. Если условие становится ложным, это означает, что строка пуста, а остальные блоки выполняются. В этой функции пробелы также рассматриваются как пустые строки. Наконец-то мы напечатали результат.

4. Использование функции Strip() только Для Проверки Пустой Строки В Python

Иногда мы видим, что пробелы, присутствующие в строке, не рассматриваются как пустые строки. Таким образом, когда мы проверяем пустую строку, мы также можем проверить наличие пробелов с помощью функции strip ().

Давайте рассмотрим пример для лучшего понимания концепции:

Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы применили условие if else, при котором мы удаляем строки, то есть пробелы удаляются, а затем, если строка становится пустой, она будет пустой строкой. В противном случае строка не будет пустой. Наконец-то мы напечатали результат.

5. Использование not operator + str.isspace()

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

Давайте рассмотрим пример для лучшего понимания концепции:

6. Использование метода __eq__

Dunder в основном сообщает методы, которые имеют двойное подчеркивание до и после их имен. Мы также можем проверить пустую строку с помощью метода __eq__.

Давайте рассмотрим пример для лучшего понимания концепции:

Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы взяли метод __eq__. Мы применили данный метод в условии if-else и проверили, пуста ли строка или нет. Наконец-то мы напечатали результат. Этот метод также не рассматривает пробелы как пустые строки.

7. Использование Регулярных Выражений Для Проверки Пустой Строки В Python

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

Давайте рассмотрим пример для лучшего понимания концепции:

Здесь мы взяли две входные строки, s и str. s-пустая строка, а str имеет пробелы. Мы импортировали библиотеку re в python. Затем мы применили условие if-else с заданным форматом, чтобы проверить, является ли строка пустой или нет. Если условие if удовлетворяет, то вывод выводится как пустая строка. В противном случае вывод выводится как не пустая строка. Следовательно, вы можете видеть результат.

Также Читайте: 5 Способов проверить, является ли строка целочисленной в Python

Вывод

В этом уроке мы узнали о концепции проверки того, является ли строка пустой или нет, и содержит ли она только пробелы или нет. Мы подробно объяснили всю концепцию, взяв все способы проверить, является ли строка пустой. Все способы подробно объясняются с помощью примеров. Вы можете использовать любой из методов, которые вам нравятся, в соответствии с требованиями вашей программы или проекта.

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Источник

Разница между string.empty и string [0] == ‘\ 0’

Предположим, у нас есть строка

Решение

C ++ 11 и выше

Pre-C ++ 11

string_variable.empty() с другой стороны, возвращает true, если строка пуста, и false, если это не так; поведение не будет неопределенным.

Резюме

empty() предназначен для проверки, является ли строка / контейнер пустой или нет. Работает на всех контейнерах, которые его предоставляют и используют empty четко указывает ваше намерение — что очень много значит для людей, читающих ваш код (включая вас).

Другие решения

Другие ответы здесь на 100% правильные. Я просто хочу добавить еще три заметки:

empty является общим (каждый контейнер STL реализует эту функцию), в то время как operator [] с size_t работает только со строковыми объектами и массивами. при работе с общим кодом STL, empty является предпочтительным.

также существует потеря производительности. empty обычно реализуется путем сравнения размера элемента строки с нулем, что очень дешево, легко встроить и т. д. сравнение с первым символом может быть более тяжелым. прежде всего, поскольку все строки реализуют оптимизация коротких строк, Сначала программа должна спросить, находится ли строка в «коротком режиме» или «длинном режиме». ветвление — худшая производительность. если строка длинная, разыменование может быть дорогостоящим, если строка «игнорировалась» в течение некоторого времени, а сама разыменование может вызвать ошибку кэша, которая является дорогостоящей.

empty () не реализован, поскольку ищет наличие нулевого символа в позиции 0, его просто

Который может быть другим

Также остерегайтесь функций, которые вы будете использовать, если используете C ++ 11 или более позднюю версию:

Размер str составляет 3 байта.

Размер ул 3 длинных.

Размер str 0 длинный.

C ++ строка имеет понятие о том, является ли она пустой или нет. Если строка пуста, то str [0] не определено. Только если строка C ++ имеет размер> 1, определяется str [0].

str [i] == ‘\ 0’ — это концепция стиля C-строки. В реализации C-строки последний символ строки — ‘\ 0’, чтобы отметить конец C-строки.
Для C-строки вам обычно приходится «запоминать» длину вашей строки с помощью отдельной переменной. В C ++ String вы можете назначить любую позицию с помощью ‘\ 0’.

Источник

В чем разница между String.Empty и «» и null?

Что предпочтительнее для инициализации строковых значений?

String.Empty, потому что это статическая переменная, а не “”, которая должна создать новую строку, а null означает, что вы должны установить строку равным новому экземпляру строки.

(спасибо за исправление)

Да. И String.Empty, но, пожалуйста, не беспокойтесь об этом.

Разница между String.Empty и “довольно мала, но есть разница.” ” фактически создает объект, он, скорее всего, вытащит из внутреннего пула строк, а String.Empty не создаст объект, поэтому, если вы действительно ищете конечный эффективность памяти, я предлагаю String.Empty. Тем не менее, вы должны иметь в виду, что разница настолько велика, что вы будете как никогда не видеть его в вашем коде…

Используйте то, что вы считаете наиболее читаемым.

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

Считается, что лучше использовать string.Empty, однако они эффективно равны. Однако они не совпадают с нулевыми значениями.

Значение этого поля представляет собой строку нулевой длины, “”.

В коде приложения это поле чаще всего используется в назначениях для инициализации строковой переменной в пустую строку. Чтобы проверить, является ли значение строки String. Пусто, используйте метод IsNullOrEmpty.

Источник

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

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