【问题标题】:String should maintain Line break similar as TextArea [duplicate]字符串应保持与 TextArea 类似的换行符 [重复]
【发布时间】:2017-01-22 03:21:13
【问题描述】:

输入到 textarea :(这 3 行)

<textarea id="preM" rows="3" cols="10" style="resize: none; width:100%;">
</textarea><br/>

这是文本区域的示例
这是新线路
大家好

在 JSP 页面中,我正在检索文本区域的值

String variableString = request.getParameter("preM");
System.out.println(variableString);

输出如下:

这是 textarea 的示例 这是新行 Hello All

预期输出:

这是文本区域的示例
这是新线路
大家好

我已经试过了

StringBuffer preM = new StringBuffer(request.getParameter("preM"));
int loc = (new String(preM)).indexOf('\n');
while(loc > 0){
  text.replace(loc, loc+1, "<BR>");
  loc = (new String(preM)).indexOf('\n');
}
out.println(preM);

但是得到loc=-1。

【问题讨论】:

  • 你应该使用name="preM"而不是id="preM",否则String variableString = request.getParameter("preM");将打印NULL

标签: java html string


【解决方案1】:

最好的方法是将文本包装成BufferedReader,它可用于遍历行,然后使用PrintWriter 将每一行写入使用平台特定的文件换行符。

请参考这个 SO:Strings written to file do not preserve line breaks

这里提到了 2 种方法,个人而言,为了节省内存并在较大的字符串上表现良好,我会选择 Bufferedreader 方式。

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 2019-03-30
    • 2018-01-24
    • 2016-02-10
    • 1970-01-01
    • 2010-09-12
    • 2020-02-14
    • 1970-01-01
    相关资源
    最近更新 更多