有关String里把回车替换成\n的问题?
我的jsp页面读取了一个xml文件.
<a>
<b>
内容有回车
是啊
</b>
</a>
我把这个文件读到一个string变量里面.本来这样没什么问题/
问题在于我要把这个变量的值赋给一个js变量.
如果我原封不动的赋的话,比如
var v='<%=s%>';
那么实际网页输出的时候会变成:
var v='<a>
<b>
内容有回车
是啊
</b>
</a>';
可想而知这个v变量是错误的,于问我想把这个s变量里的回车符先替换成\n.
在ACCP的指点下,我用以下方法实现:
String newline = System.getProperty("line.separator");//这是回车
s= detail.replaceAll(newline,"\\\\n");
//这一步是因为<b>里面的内容会有两个\n\n,不知道什么原因???
s= strtmp.replaceAll("\\\\n\\\\n"," \\\\n");
虽然做到了,但是疑问多多:
1.为什么要\\\\n才能替换成一个\n符.java里到底是怎么实现替换的?
2.以前学c的时候知道回车是ask码的13+10那么我的\n真是就代码回车了吗?因为当我的一个AcxtiveX控件读取的时候,会变成一个"|"符号,而且,仔细看你们会发现,第二次替换的时候我是用" \\\\n"的,比"\\\\n"多了个空格,如果不这样,显示的时候居然会把前一个字给吃掉一半.
请教高手给予详细解说,谢谢!