我添加信息的时候,就用了一个文本域将内容保存到数据库中了.在保存之前我将文本域中的内容中包含的空格和回车替换。代码如下:
        for(int i=0;i<newsContent.length();i++){
if(newsContent.substring(i, i+1).equals(" ")){
newsContent+="&nbsp;";
}
else if(newsContent.substring(i, i+1).equals("\n")){
newsContent+="<br>";
}
else if(newsContent.substring(i, i+1).equals("<")){
newsContent+="&lt;";
}
else if(newsContent.substring(i, i+1).equals(">")){
newsContent+="&gt;";
}
else if(newsContent.substring(i, i+1).equals("&")){
newsContent+="&amp;";
}
else if(newsContent.substring(i, i+1).equals("\"")){
newsContent+="&quot;";
}
else{
newsContent+=newsContent.substring(i, i+1);
}
}
这样方法好像不可行,因为内容如果很多时,一个字符一个字符的遍历,运行不了。
用                newsContent.replaceAll("\\n\\r", "<br>");
newsContent.replaceAll(" ", "&nbsp;");
没反应,如何才能解决问题,请高手相助!

解决方案 »

  1.   

    newsContent.replaceAll("\\n\\r", " <br>"); 
    newsContent.replaceAll(" ", "&nbsp;"); 
    是应该有反应的,
    但请注意,应该是newsContent.replaceAll("\\r\\n", " <br>"); 一个字符一个字符的遍历,运行不了。 
    为什么运行不了?
    你要知道即便使用replaceAll,内部的原理依然是遍历
      

  2.   

    newsContent.replaceAll("\\s+",<br>)这个就最好了你哪个没反映的原因是应该写成 [(\\n)|(\\r)]
      

  3.   

    问题解决了,我用的是newsContent=newsContent.replace("\n","<br>");
    newsContent=newsContent.replace(" ","&nbsp;");
    replaceAll()的前一个参数是正则表达式。另外一个问题时一定要把已经替换了的赋给那个变量,这样保存的才改变.