如何将一个字符串转义 C#

战斗汪汪 2016-10-13 01:54:43
如何将一个字符串变量转义?
================================
比如给一个变量x
x可能是n,t之类的,
如何让它起到\n,\t的效果

比如我试过 string.fromat("\{0}",tmp);
结果\{0}就不行,编译报错.
...全文
960 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
战斗汪汪 2016-10-14
  • 打赏
  • 举报
回复
引用 13 楼 crystal_lz 的回复:

dic.Add("\\n","\n");
dic.Add("\\t","\t");

string str = "xxx\\nferewwq\\t,abc";
foreach(var v in dic){
    str = str.Replace(v.key,v.value);
}
看了你的答复,感觉方法是可行. db里边是 xf001,xf002 之类的code. 系统初始化加个 字典,把xf001 和\xf001 先设定好.使用的时候用xf001 取对应的\xf001值. 其实,我项目里边这个问题用其他方式也解决了.来这问,是看看有没有大神有更好的方法. 谢谢各位!
crystal_lz 2016-10-13
  • 打赏
  • 举报
回复

dic.Add("\\n","\n");
dic.Add("\\t","\t");

string str = "xxx\\nferewwq\\t,abc";
foreach(var v in dic){
    str = str.Replace(v.key,v.value);
}
xuzuning 2016-10-13
  • 打赏
  • 举报
回复
是呀,你不说,我怎么会知道? 举例也得举与实际情况相符的例子吧
战斗汪汪 2016-10-13
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
        static void Main(string[] args)
        {
            var str = "then";
            Console.WriteLine("{0} {1}<==这里换行了", str, str.Replace('n', '\n'));
        }
replace(txt,"n","\n") 这个处理也很局限.实际情况是,不单单是\n ,是大一堆的字符.需要转义. \n 只是举例子. =================================== 不说,你又不会理解哎. 实际上是:有好多图标.用\+code,显示这些图标. 现在数据库保存的是code. 我取到code之后.要给他拼一个\,塞到 button.text 中 显示对应的图标 如果是\\ 就会想显示\+code.
stherix 2016-10-13
  • 打赏
  • 举报
回复
引用 8 楼 gnsyhxg 的回复:
[quote=引用 6 楼 xuzuning 的回复:] then 你也要把那个 n 变成 \n ???
是的,但不是\\n 大部分的回答是\\n,不符合要求. 实际上显示\n,他对应的字符串是\\n 我要的是,实际字符是\n,显示是换行[/quote] 基本只能用switch来逐个判断吧,或者有其他的字符串文本分析类?
xuzuning 2016-10-13
  • 打赏
  • 举报
回复
        static void Main(string[] args)
{
var str = "then";
Console.WriteLine("{0} {1}<==这里换行了", str, str.Replace('n', '\n'));
}
战斗汪汪 2016-10-13
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
then 你也要把那个 n 变成 \n ???
是的,但不是\\n 大部分的回答是\\n,不符合要求. 实际上显示\n,他对应的字符串是\\n 我要的是,实际字符是\n,显示是换行
anbin0814 2016-10-13
  • 打赏
  • 举报
回复
双斜杠 string.fromat("\\{0}",tmp);
xuzuning 2016-10-13
  • 打赏
  • 举报
回复
then 你也要把那个 n 变成 \n ???
战斗汪汪 2016-10-13
  • 打赏
  • 举报
回复
引用 4 楼 stherix 的回复:
[quote=引用 2 楼 cfz379945430 的回复:] 少了一个斜杠
 string.fromat("\\{0}",tmp);
这样是不行的 因为字符串转义在编译阶段已经完成了 你这样最终得到的就是\和n两个字符组成的字符串 而不是得到一个换行符的字符串[/quote] 嗯,你说对了.其他的回复都没理解我的意思. replace(txt,"n","\n") 这个处理也很局限.实际情况是,不单单是\n ,是大一堆的字符.需要转义.
stherix 2016-10-13
  • 打赏
  • 举报
回复
引用 2 楼 cfz379945430 的回复:
少了一个斜杠
 string.fromat("\\{0}",tmp);
这样是不行的 因为字符串转义在编译阶段已经完成了 你这样最终得到的就是\和n两个字符组成的字符串 而不是得到一个换行符的字符串
一枚大帅哥 2016-10-13
  • 打赏
  • 举报
回复
引用 2 楼 cfz379945430 的回复:
少了一个斜杠
 string.fromat("\\{0}",tmp);
正解,楼主左斜杠只打一个,肯定编译不过。
ArmStronger 2016-10-13
  • 打赏
  • 举报
回复
少了一个斜杠
 string.fromat("\\{0}",tmp);
  • 打赏
  • 举报
回复
用判断方法强行Replace吧,比如 replace(txt,"n","\n")

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧