С# string replace не работает
Я пытаюсь заменить часть строки другой строкой. Чтобы быть более точным
У меня C:\Users\Desktop\Project\bin\Debug
и я пытаюсь заменить \bin\Debug
на \Resources\People
Я пробовал следующее:
-
path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");
-
path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
Ни одна из двух вышеприведенных функций не работает, поскольку строка остается неизменной и ничего не заменяется. Я делаю что-то неправильно?
Ответы
Ответ 1
Проблема в том, что строки неизменяемы. Методы replace, substring и т.д. Не меняют сама строка. Они создают новую строку и заменяют ее. Таким образом, для правильного приведенного кода он должен быть
path1 = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
Или просто
path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
если другая переменная не нужна
ИЗМЕНИТЬ
Этот ответ также является напоминанием о том, что строки неизменяемы. Любое изменение, которое вы им делаете, фактически создаст новую строку. Поэтому имейте в виду все (включая управление памятью)
Ответ 2
Метод path.Replace
фактически возвращает string
. Вы должны сделать следующее:
path = path.Replace("firstString", "secondString");
Ответ 3
String.Replace(string,string) returns string.
Итак, сохраните новый путь в некоторой строковой переменной.
path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");