高手们,c#中如何替换回车符号“\n”为“\&”,在线等

shanfeng33333333 2013-03-21 03:49:50
c#中,如何替换回车符号“\n”为“\&”,
例如:
string oldStr="ABCDFEGG\n\nDSSF\n\n";
string newStr="";

想解析为:
newStr=="ABCDFEGG\&\&DSSF\&\&"; 正确

newStr=oldStr.Replace("\n","\&");//报错
newStr=oldStr.Replace("\n",@"\&");//ABCDFEGG\\&\\&DSSF\\&\\& ,解析的值错误
那位大哥帮帮忙解答一下,谢谢,谢谢
...全文
1350 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
引用 27 楼 superliu1122 的回复:
在调试器里看到的"\\&"实际上就是\&,只是调试器在显示的时候给你加上的,和你在代码里用\&要写成\\&一个道理
对的,是我客户的机器中自身编程语言的问题,少加了一个命令符号,楼上的\\和\解释是对的,谢谢朋友们的热情参与,结贴,感谢!
superliu1122 2013-03-21
  • 打赏
  • 举报
回复
在调试器里看到的"\\&"实际上就是\&,只是调试器在显示的时候给你加上的,和你在代码里用\&要写成\\&一个道理
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
引用 21 楼 superliu1122 的回复:
很明显,楼主是在调试器里看的变量的值,所以把转义字符都显示出来了
对的,调试机器中有什么值就会传递给机器什么值,不会在让.NET前段界面在解释了,
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
亲们,请看我的第2楼, 我的这个程序是输出原文档,也就是说,是什么样的值就输出什么样的值,不会用到C#中的转义了, 22楼,你的解析在界面中看确实是 只有一个\,但是这个是经过.NET转义以后的值才显示在界面textBox1.Text中正确的,跟我的需求不符合??我的不需要在经过界面的解释了. 输出原文档,也就是说,是什么样的值就输出什么样的值,也就是说要在后台就解析为一个\的情况..
adrianEvin 2013-03-21
  • 打赏
  • 举报
回复
你可以 @oldStr 在调试看的是二个\\ 但是输出的时候 会显示的是一个\ 你可以试着去存储数据库 或者 生成txt 界面显示 看看会不会出现二个\\ 不单单是看着调试结果
搬砖的码农 2013-03-21
  • 打赏
  • 举报
回复
string newStr = @oldStr.Replace("\n", @"\&");就用这个,和14楼的一样,转换成功
搬砖的码农 2013-03-21
  • 打赏
  • 举报
回复
引用 3 楼 zhurcn 的回复:
string oldStr = @"ABCDFEGG\n\nDSSF\n\n"; string newStr = oldStr.Replace(@"\n", @"\&"); textBox1.Text = newStr;
这样不可以吗
superliu1122 2013-03-21
  • 打赏
  • 举报
回复
很明显,楼主是在调试器里看的变量的值,所以把转义字符都显示出来了
linrachel 2013-03-21
  • 打赏
  • 举报
回复
引用 19 楼 shanfeng33333333 的回复:
引用 18 楼 linrachel 的回复: 使用oldStr的时候,在前面加@就可以了,如14楼代码。 14楼的结果还是: newStr=="ABCDFEGG\\&\\&DSSF\\&\\&"; 不对的
你确定你试过了吗?怎么我这边输出的就是你要求的呢
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
引用 18 楼 linrachel 的回复:
使用oldStr的时候,在前面加@就可以了,如14楼代码。
14楼的结果还是: newStr=="ABCDFEGG\\&\\&DSSF\\&\\&"; 不对的
linrachel 2013-03-21
  • 打赏
  • 举报
回复
使用oldStr的时候,在前面加@就可以了,如14楼代码。
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
亲们,继续呀,问题还没有解决呢 table 中有个字段: oldStr 维护的值是ABCDFEGG\n\nDSSF\n\n 读取该值,得到后台的值 string oldStr="ABCDFEGG\n\nDSSF\n\n"; 想把这个变量oldStr中的\n转换为\&,想得到的结果是 "ABCDFEGG\&\&DSSF\&\&“
搬砖的码农 2013-03-21
  • 打赏
  • 举报
回复
要转换的时候添加没关系吧
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
引用 12 楼 dongxinxi 的回复:
都被你搞晕掉了 C#中没有\&的转义,字符串中的表示就是\\&或者@"\&" 你说newStr=="ABCDFEGG\&\&DSSF\&\&"解析正确,除非后面的那个也是放在变量中,你那样写成常量也是一样的道理,\在字符串需要转义
不好意思,可能是我描述的不好, 实际情况是这样: string oldStr="ABCDFEGG\n\nDSSF\n\n"; 这个oldStr的值是变量传递过来的值,里面包含\n, 我想把这个变量中的\n转换为\&,想得到的结果是="ABCDFEGG\&\&DSSF\&\&“楼上有的说在oldStr前面加@来出来,这个思想是对的,可是,我的这个变量是从表中得到以前维护好的值, 读取出来时就已经是string类型了,在前面加"@"+oldStr="@ABCDFEGG\n\nDSSF\n\n"本身这种字段的值就被改变了,不知道我说的亲们清楚了吗?多谢大家的集思广益
linrachel 2013-03-21
  • 打赏
  • 举报
回复

newStr=@oldStr.Replace("\n",@"\&");
天下如山 2013-03-21
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
   var str = @"ABCDFEGG\n\nDSSF\n\n";
   Console.WriteLine(Code(str));
}
static string Code(string str)
{
   string s = str;
   string newStr = s.Replace(@"\n", @"\&");
   return newStr;
}
不知道理解的正确不正确.
  • 打赏
  • 举报
回复
都被你搞晕掉了 C#中没有\&的转义,字符串中的表示就是\\&或者@"\&" 你说newStr=="ABCDFEGG\&\&DSSF\&\&"解析正确,除非后面的那个也是放在变量中,你那样写成常量也是一样的道理,\在字符串需要转义
shanfeng33333333 2013-03-21
  • 打赏
  • 举报
回复
引用 6 楼 linrachel 的回复:
\n是换行符,你要输出什么?
这个目的是为了把换行符号替换成“\&",这个“\&”对应的是机器中专有的一个指令,对应的就是我们常见的换行符号,不过这个机器不识别我们常用的换行符"\n"而已,谢谢
天下如山 2013-03-21
  • 打赏
  • 举报
回复
竟然是传过来 那就在传的地方先进行转义处理呗.
搬砖的码农 2013-03-21
  • 打赏
  • 举报
回复
在有可能出现特殊字符的字符串前面都默认加“@”不可以吗
加载更多回复(8)

110,529

社区成员

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

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

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