用反斜杠格式化字符串

时间:2010-09-14 18:22:56

标签: c#

我是c#的新手,所以希望这对你们中的一些人来说不是太难。

我正在尝试构建一个包含\的字符串,即使我添加了额外的转义字符或忽略它们,我也很难得到一个反斜杠。有人能告诉我我做错了吗?

我希望我的字符串看起来像:

"10.20.14.103\sql08"

到目前为止我尝试过:

我添加了一个额外的字符以使编译器感到高兴,但它没有逃脱它。

ip = string.Format("{0}\\\\{1}", ip, instancename); // output has 2 \'s

我告诉它忽略逃避,它决定忽略我

string temp =  @"192.168.1.200\sql08"; // output has 2 \'s

有人可以帮助我理解这个吗? (这里的richtext编辑器似乎比VS2010做得更好,哈哈)

4 个答案:

答案 0 :(得分:13)

我猜测你对调试器感到困惑。

如果将鼠标悬停在VS中的本地变量上,字符串将被转义,因此单个\将显示为\\

要查看您的字符串真正是什么,请将其输出到某处以供显示(例如,输出到控制台)或将鼠标悬停在变量上,单击出现的小放大镜旁边的箭头,然后选择“Text Visualizer。”

答案 1 :(得分:4)

如果您在调试器中查看这些字符串(即,将鼠标悬停在变量上或使用监视器),调试器会将转义字符添加到显示字符串,以便它是一个有效的字符串表达式< / em>的。如果要以这种方式逐字查看字符串,请单击工具提示右侧的放大镜或观察其中包含字符串的条目。

答案 2 :(得分:3)

我猜你正在查看调试器中的值并看到它们有两个斜杠。

这是正常的。调试器将显示两个斜杠,即使实际的字符串表示只有一个。在习惯调试器时,只需要另一个驼峰。

请放心,当您实际使用字符串时,它们仍然只有一个斜杠(使用您的任何一种方法)。

答案 3 :(得分:1)

string requiredString = string.Format(@"{0}\\{1}",str1,str2);