替换.Net中的斜杠

时间:2010-02-28 15:25:44

标签: .net vb.net

我有一个包含“\”的本地文件路径,我需要将所有出现的内容更改为“/”以用于远程文件路径。

我试过了

myString.replace("\","/")

myString.replace(Convert.ToChar(92), Convert.ToChar(47)) 

两者似乎都把“\”留在了...... [/ p>

答案:

NewString = myString.replace("\","/")

问题在于我没有将它分配给变量。逃避斜线实际上使它失败了,至少在vb.net中。

4 个答案:

答案 0 :(得分:10)

字符串是不可变的。 Replace方法返回一个新字符串而不是影响当前字符串,因此您需要在变量中捕获结果。如果您使用的是VB.NET,则无需转义反斜杠,但在C#中必须使用其中的两个进行转义。

VB.NET(不需要转义):

myString = myString.Replace("\","/")

C#(反斜杠转义):

myString = myString.Replace("\\","/");

我假设您正在使用VB.NET,因为您没有包含分号,没有逃避反斜杠,并且由于使用了替换方法的外壳。

答案 1 :(得分:4)

\必须通过在前面加上另一个\进行转义,或者通过在字符串前加@来将整个字符串转换为本地字符串。此外,myString.replace不会改变myString(字符串是不可变的,即无法更改),因此您需要指定值以查看结果。

使用

string myNewString = myString.replace("\\","/")

string myNewString = mmyString.replace(@"\","/")

string myNewString = mmyString.replace('\\','/')

答案 2 :(得分:0)

您可以转义\

myString.replace("\\","/")

或使用string literal(C#):

myString.replace(@"\","/")

或者使用使用char s:

的重载
myString.replace('\','/')

答案 3 :(得分:0)

您需要使用额外 back slash (\)转义back slash (\\),试试这个:

myString.replace("\\","/")