Как заменить вхождения "-" пустой строкой? - PullRequest
34 голосов
/ 22 мая 2009

У меня есть эта строка: "123-456-7"

Мне нужно получить эту строку: "1234567"

Как я могу заменить вхождения "-" пустой строкой?

Ответы [ 6 ]

94 голосов
/ 22 мая 2009
string r = "123-456-7";
r = r.Replace("-", "");
23 голосов
/ 22 мая 2009

Это должно сработать:

String st = "123-456-7".Replace("-","");
19 голосов
/ 22 мая 2009
string r = "123-456-7".Replace("-", String.Empty);

Для .Net 1.0 String.Empty не будет занимать дополнительное место в куче, но "" требует хранения в куче и его адреса в стеке, что приводит к увеличению количества кода сборки. Следовательно, String.Empty быстрее, чем "".

Также String.Empty означает отсутствие опечаток.

Проверьте В чем разница между String.Empty и ссылкой "" .

4 голосов
/ 22 мая 2009

Для ясности, вы хотите заменить каждый дефис (-) пустым / пустым. Если вы замените его на Backspace, то перед ним будет удален символ!

Это привело бы к: 123-456-7 ==> 12457

У Шона Брайта правильный ответ.

2 голосов
/ 22 мая 2009

Метод String.Replace (String, String)

в вашем случае это будет

string str = "123-456-7";
string tempstr = str.Replace("-","");
0 голосов
/ 14 декабря 2012

Используйте String.Empty или null вместо «», поскольку «» будет создавать объект в памяти для каждого вхождения, в то время как другие будут повторно использовать тот же объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...