C#stringreplace不起作用
我想用另一个stringreplace一部分string。 更准确地说我有C:\Users\Desktop\Project\bin\Debug
我试图用\Resources\People
replace\bin\Debug
我已经尝试了以下内容:
a) path.Replace(@"\bin\Debug", @"\Resource\People\VisitingFaculty.txt");
b) path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
以上三种方法似乎都不起作用,因为string保持不变,没有任何东西被replace。 我做错了什么?
问题是string是不可变的。 replace方法,子串等不会改变string本身。 他们创build一个新的string,并将其replace。 所以对于上面的代码是正确的,应该是
path1 = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
要不就
path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");
如果另一个variables不需要
编辑这个答案也是一个提醒,string是不可改变的。 你对他们所做的任何改变实际上都会产生一个新的string。 所以,请记住所有事情(包括内存pipe理)
path.Replace
方法实际上返回一个string
。 您应该执行以下操作:
path = path.Replace("firstString", "secondString");
String.Replace(string,string) returns string.
所以,在一些stringvariables中保存新的path。
path = path.Replace("\\bin\\Debug", "\\Resource\\People\\VisitingFaculty.txt");