日期:2014-05-20  浏览次数:20779 次

关于换行的问题
我从一个文件中读入一行字符:“skdj\njfie”,为什么输出这行文字的时候没有换行,如果我直接输出这行文字:System.out.println(“skdj\njfie”)就有换行,这是为什么?

------解决方案--------------------
回复人:zqrqq(zqrain(结帖是一种美德)) ( 五级(中级)) 信誉:105 2007-06-22 11:00:38 得分:0

String fileContext=读出的文件内容
fileContext.replaceAll( "\\n ", "\n ");
System.out.println(fileContext);
====================================================
to: zqrqq
你这样写是不对的,应该改成:

String fileContext=读出的文件内容
fileContext = fileContext.replaceAll( "\\\\n ", "\n ");
System.out.println(fileContext);
------解决方案--------------------
对不起,看错了

我来解释一下:是 "\\\\n ",而不是 "\\n "
读取文件里的\,没有任何变化
但是,因为replaceAll()的第一个参数是一个政则表达式,为了替换\n,正则表达式应该是\n,但是在正则表达式里面,\是特殊字符,需要转义,所以应该是\\n;但是,在java字符里面\也是特殊字符;所以,需要再次转义,所以就是\\\\n