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

Замена обратной косой черты в строке

У меня возникает несколько проблем с попыткой заменить обратную косую черту в строке даты на С#.net.

До сих пор я использую:

string.Replace(@"\","-")

но он не сделал замену. Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

string.Replace не изменяет сама строка, а возвращает новую строку, которая, скорее всего, вы выбрасываете. Сделайте это вместо:

myString= myString.Replace(@"\","-");

С другой стороны, этот вид операции обычно просматривается в коде, который вручную обманывает с форматированными строками даты. В большинстве случаев есть лучший способ сделать то, что вы хотите (что?), Чем такие вещи.

Ответ 2

поскольку все они говорят, что вам нужно вернуть значение в переменную.

поэтому он должен быть

 val1= val1.Replace(@"\","-");

или

 val1= val1.Replace("\\","-");

но не только.. ниже один не будет работать

 val1.Replace(@"\","-");

Ответ 3

Используйте его таким образом.

oldstring = oldstring.Replace(@"\","-");

Найдите тип возврата String.Replace.

Его функция, которая возвращает скорректированную строку. Если бы он просто изменил старую строку, то он имел бы тип возврата void.

Ответ 4

Вы также можете использовать:

myString = myString.Replace('\\', '-'));

но давая вам знать, косые черты, как правило, пересылаются /, а не обратные слэши \.

Ответ 5

Как было предложено другими, String.Replace не обновляет исходный строковый объект, но вместо этого возвращает новую строку.

myString= myString.Replace(@"\","-");

Стоит вам понять, что строка неизменна в С# в основном, чтобы сделать ее потокобезопасной. Более подробно о строках и о том, почему они неизменяемы, см. Ссылки здесь и здесь