Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

string r = "123-456-7";
r = r.Replace("-", "");

Ответ 2

Это должно сделать трюк:

String st = "123-456-7".Replace("-","");

Ответ 3

string r = "123-456-7".Replace("-", String.Empty);

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

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

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

Ответ 4

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

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

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

Ответ 6

Шон Брайт, спасибо тебе за ответ. Мне интересно знать, почему я делал то же самое, но вместо того, чтобы использовать .Replace(".", String.empty), я делал .Replace('.', String.empty) и получал ошибку. В любом случае ваш ответ работал отлично.

Ответ 7

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

Ответ 8

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