Для этого есть причина? Я спрашиваю, потому что, если вам нужно использовать много пустых символов, вы попадаете в ту же ситуацию, что и при использовании большого количества пустых строк.
Редактировать: причина этого использования была такая:
myString.Replace ('c', '')
Поэтому удалите все экземпляры c из myString.
RemoveAll(this string s, params char[] toRemove)
? Намерение будет четко сообщено, и вы не рискуете что-то напечатать.""
создает объект : нет, это не так.Ответы:
Там нет такого понятия, как пустой символ. Самое близкое, что вы можете получить
'\0'
, это «нулевой» символ Unicode. Учитывая, что вы можете встроить это в строковые литералы или очень легко выразить его самостоятельно, зачем вам отдельное поле для него? Точно так же аргументы «легко спутать""
и" "
» не применимы для'\0'
.Если бы вы могли привести пример, где вы хотели бы использовать его и почему вы думаете, что это будет лучше, это могло бы помочь ...
источник
Int32.Zero
, вы бы использовали это вместо литерала 0? Если нет, то в чем здесь разница?Символ, в отличие от строки, является дискретной вещью с фиксированным размером. Строка действительно контейнер символов.
Так что Char.Empty не имеет смысла в этом контексте. Если у вас есть символ, он не пустой.
источник
Нет такого понятия, как пустой персонаж. Это всегда содержит что-то . Даже '\ 0' является символом.
источник
Используйте,
Char.MinValue
который работает так же, как '\ 0'. Но будьте осторожны, это не то же самое, чтоString.Empty
.источник
Вы могли бы использовать обнуляемые символы.
источник
Если вам не нужна вся строка, вы можете воспользоваться задержкой выполнения:
Вы даже можете комбинировать несколько символов ...
... и будут оцениваться только первые 7 символов :)
РЕДАКТИРОВАТЬ: или, еще лучше:
и его использование:
источник
ОК, это не особенно элегантно для удаления букв, так как метод .Replace имеет перегрузку, которая принимает строковые параметры. Но это работает для удаления возврата каретки, перевода строки, вкладок и т. Д. В этом примере удаляются символы табуляции:
источник
По той же причине нет
int.Empty
. Контейнеры могут быть пустыми. Скалярные значения не могут быть. Если вы имеете в виду 0 (что не пусто), то используйте'\0'
. Если вы имеете в видуnull
, то используйтеnull
:)источник
Символ является типом значения, поэтому его значение не может быть нулевым. (Если только он не обернут в контейнер Nullable).
Так как он не может быть нулевым, в нем содержится некоторый числовой код, и каждый код отображается на некоторый символ.
источник
Не ответ на ваш вопрос, но для обозначения по умолчанию
char
вы можете использовать простокоторый такой же,
char.MinValue
который в свою очередь такой же, как\0
. Не следует использовать if для чего-то вроде пустой строки.источник
Не отвечает на ваш первый вопрос - но для конкретной проблемы, которую вы имели, вы можете просто использовать строки вместо символов, верно ?:
Есть причина, по которой ты не хотел бы этого делать?
источник
Вы также можете перестроить свою строку символ за символом, исключая символы, от которых вы хотите избавиться.
Вот метод расширения, чтобы сделать это:
Это не гладко и не модно, но работает хорошо.
Используйте как это:
источник
StringBuilder
дляresult
. Почему бы не обернутьreturn s.Replace(charsToRemove,"");
?Если вы хотите удалить символы, которые удовлетворяют определенному условию, вы можете использовать это:
(Это оставит только заглавные символы в строке.)
Другими словами, вы можете «использовать» строку как
IEnumerable<char>
, внести в нее изменения, а затем преобразовать ее обратно в строку, как показано выше.Опять же , это позволяет не только удалить определенный символ из лямбда - выражения, хотя вы можете сделать это , если вы измените лямбда - выражения , как это:
c => c != 't'
.источник
Как насчет BOM , магического персонажа, который Microsoft добавляет для запуска файлов (по крайней мере, XML)?
источник
myString.Replace ('c', '')
может ли быть достигнуто путемmyString.Replace ('c', UTF_BOM)
. Тогда я бы сказал, что ответ "как не о ...".если вы хотите устранить пустой символ в строке, сработает следующее, просто преобразуйте в любое представление типа данных, которое вы хотите. Спасибо,
источник
С точки зрения языка C # следующее может не иметь особого смысла. И это не прямой ответ на вопрос. Но мясо птицы - это то, что я сделал в одном из моих бизнес-сценариев.
null
Иwhite space
имели разные бизнес потоки в моем проекте. При вставке в базу данных мне нужно вставитьempty string
в базу данных, если это пробел.источник
Я знаю, что этот файл довольно старый, но недавно я столкнулся с проблемой необходимости многократной замены, чтобы сделать имя файла безопасным. Во-первых, в последней .NET string.Replace функция null является эквивалентом пустого символа. Сказав это, то, что отсутствует в .Net - это простая замена всего, что заменит любой символ в массиве на нужный символ. Пожалуйста, не стесняйтесь ссылаться на код ниже (запускается в LinqPad для тестирования).
источник
использование
источник
Самый простой способ удалить символ из строки - обрезать его
cl = cl.Trim(' ');
Удаляет все пробелы в строке
источник