当前位置:  开发笔记 > 编程语言 > 正文

字符串替换转义字符

如何解决《字符串替换转义字符》经验,为你挑选了2个好方法。

今天我发现将字符串放在资源文件中将导致它们被视为文字,即将"第一行文本\n第二行文本"放入将导致转义字符本身被转义,因此存储的是"第一行的文字\n第二行的文字" - 然后这些出现在显示中,而不是我的回车和标签

所以我想做的是使用string.replace \\变成\- 这似乎不起作用.

s.Replace("\\\\", "\\"); 

根本不会改变字符串,因为字符串认为只有1个反斜杠

s.Replace("\\", "");

替换所有的双引号,只留下n代替\n

另外,使用@和一半的\字符或Regex.Replace方法给出相同的结果

任何人都知道一个很好的方法来做到这一点,而不是逐字逐句地循环?



1> codelogic..:

因为\n实际上是单个字符,所以只需替换字符串中的反斜杠就无法实现这一点.您需要\使用转义字符替换每对和后续字符,例如:

s.Replace("\\n", "\n");
s.Replace("\\t", "\t");
etc


当我尝试它(C#程序)时,我不得不使用"s = s.Replace("\\n","\n");".

2> John Rudy..:

调整resx文件本身会更好.可以通过两种机制输入换行符:您可以将resx文件编辑为XML(在解决方案资源管理器中右键单击,选择"打开方式",然后选择XML),或者您可以在设计器中执行此操作.

如果你在XML中执行它,只需按Enter键,退格到你创建的换行符的开头,然后就完成了.您可以使用"搜索和替换"执行此操作,但这会很棘手.

如果您使用GUI resx编辑器,按住ENTER键的同时按住SHIFT将为您提供换行符.

你可以做运行时替换的事情,但正如你发现的那样,开始工作很棘手 - 在我的脑海里构成代码味道.(您也可以创建性能参数,但这取决于字符串资源的调用频率和应用程序的规模.)

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有