黑客日教程-关于Java换行符你需要知道的
1 概览
编程的时候经常碰到格式化字符串或生成文本输出的场景。经常,我们需要新增加一行到文本输出中。
这个看上去很简单的问题,我们来讨论一下。
2 在字符串里增加一行
不同的操作系统有自己特定的字符来表示新的一行的开始。比如,Linux用“\n”,也称换行符(line feed)。windows中用“\r\n”,被称作回车换行,也就是CRLF(carriage return and line feed)。
增加新的一行,在java中可以很简单的在字符串的结尾加上“\n”或“\r\n”。
2.1 使用CRLF换行符
比如,如果我们想用两行文本创建一个段落,并且line2作为新的一行放在line1的后面。
对于Unix/Linux/新Mac系列的操作系统,我们可以使用“\n”:
String line1 = "Humpty Dumpty sat on a wall.";
String line2 = "Humpty Dumpty had a great fall.";
String rhyme = line1 + "\n" + line2;
在windows系统上,使用“\r\n”:
rhyme = line1 + "\r\n" + line2;
在老的Mac系统上,使用“\r”:
rhyme = line1 + "\r" + line2;
我们看到了3种方式,都是依赖于具体操作系统的,这种模式显然并不好。
2.2 使用平台无关的换行符
使用系统自定义的常量来实现平台无关。
比如,使用System.lineSeparator():
rhyme = line1 + System.lineSeparator() + line2;
还可以使用System.getProperty("line.separator")
rhyme = line1 + System.getProperty("line.separator") + line2;
3 在html中增加一行
如果我们需要在html页面中增加一行字符串,可以使用html标签
。
还可以使用Unicdoe字符,“
”(回车字符)和“
”(换号符)。这两个字符虽然有效,但是并不是在所有平台上都像我们期待那样展现。
反而是更好的方案。
在某些html标签里面,我们可以使用“\n”。
上面解释的三种方式,怎么使用取决于我们在使用什么html标签。
3.1 html <br> 标签
rhyme = line1 + "<br>" + line2;
标签基本在所有html元素中都有效,比如<body> <p> <pre>。但是注意,在<textarea>中无效。
3.2 换行字符
在<pre>和<textarea>中可以用“\n”来换行。
rhyme = line1 + "<br>" + line2;
3.3 Unicode字符
”来换行。在<textarea>中,下面写法二选一:
rhyme = line1 + " " + line2;
rhyme = line1 + " " + line2;
对于<pre>:
rhyme = line1 + " " + line2;
rhyme = line1 + " " + line2;
本文讨论了java如何在字符串中插入换行符。
还讨论了如何写平台无关的代码来换行。( System.lineSeparator()和 System.getProperty(“line.separator”) )
最后,讨论了再html页面中插入换行符的问题。
本文示例代码见github