Android:将字符串格式化为html - 添加新行

时间:2014-10-03 07:05:53

标签: java android html string-formatting

我需要格式化从用户到HTML的文本,但输入是多行的,我必须替换所有&#34;输入&#34;从该字符串到HTML <br />标记。

String message = messageEditText.getText().toString();

这是我要格式化的信息。如何相应地格式化字符串?

3 个答案:

答案 0 :(得分:5)

message = message.replace ("\\r\\n", "<br>").replace ("\\n", "<br>");

答案 1 :(得分:1)

根据您的操作系统,字符串将在每行的末尾添加换行符。这些可以是\n\r\n。只需写下:

inputString = inputString.replace("\r\n", "<br />").replace("\n", "<br />");

这样,如果当前操作系统使用\r\n,那么这些将在第一次替换中被替换,否则如果它是\n,则在第一次替换时将找不到它们,但是将在第二个。

如果您想编写一些代码,可以使用以下代码:

System.getProperty("line.separator")

获取系统的换行符。

答案 2 :(得分:1)

您可以使用其他响应中已建议的双重替换,但为了简洁代码,我倾向于更换正则表达式:

yourString.replaceAll("\r?\n", "<br/>");

或者,当然是Pattern等效,如果你需要多次进行操作:

Pattern endOfLine = Pattern.compile("\r?\n");
endOfLine.matcher(yourString).replaceAll("<br/>");

另外,如果用户的输入是从Web界面或远程系统获取的(当然,这取决于您的用例),请小心使用System的行分隔符。用户可以使用其他操作系统......

但是,在所有情况下,请确保您执行任何EOL - &gt; &LT峰; br /&GT;替换,在用户输入中使用HTML编码任何特殊字符之后。否则,&lt; br&gt;标签将被编码...