У меня есть эта строка: "123-456-7"
Мне нужно получить эту строку: "1234567"
Как я могу заменить вхождения "-" пустой строкой?
У меня есть эта строка: "123-456-7"
Мне нужно получить эту строку: "1234567"
Как я могу заменить вхождения "-" пустой строкой?
string r = "123-456-7";
r = r.Replace("-", "");
Это должно сделать трюк:
String st = "123-456-7".Replace("-","");
string r = "123-456-7".Replace("-", String.Empty);
Для .Net 1.0 String.Empty не займет дополнительного места в куче, но для "требуется" память в куче и ее адрес в стеке, что приводит к большему количеству кода сборки. Следовательно, String.Empty быстрее, чем "".
Также String.Empty означает отсутствие ошибок опечатки.
Чтобы быть понятным, вы хотите заменить каждый дефис (-) пустым/ничего. Если вы замените его на backspace, он будет стирать персонажа перед ним!
Это приведет к: 123-456-7 == > 12457
Шон Брайт имеет правильный ответ.
String.Replace Method (String, String)
в вашем случае это будет
string str = "123-456-7";
string tempstr = str.Replace("-","");
Шон Брайт, спасибо тебе за ответ. Мне интересно знать, почему я делал то же самое, но вместо того, чтобы использовать .Replace(".", String.empty), я делал .Replace('.', String.empty) и получал ошибку. В любом случае ваш ответ работал отлично.
Используйте String.Empty или null вместо ", так как" " создаст объект в памяти для каждого вхождения, а другие будут повторно использовать один и тот же объект.
Любой из вышеперечисленных методов, на мой взгляд, хорош, тогда как если вы занимаетесь какой-то сложной операцией, лучше подумайте о регулярном выражении, это действительно здорово.