需要获取多行字符串以在文本框Java中显示

我的项目有要求。 我在javascript中生成一个注释字符串。

Coping Option: Delete all codes and replace Source Proj Num: R21AR058864-02 Source PI Last Name: SZALAI Appl ID: 7924675; File Year: 7924675 

我将它发送到服务器,我将其作为字符串存储在db中,然后我将其检索回来并在textarea中显示它。

我在javascript中生成它:

  codingHistoryComment += 'Source Proj Num: '+'\n'; codingHistoryComment += 'Source PI Last Name: '+'\n'; codingHistoryComment += 'Appl ID: ; File Year: '+'\n'; 

在java中我试图将\ n替换为

  String str = soChild2.getChild("codingHistoryComment").getValue().trim(); if(str.contains("\\n")){ str = str.replaceAll("(\r\n|\n)", "
"); }

然而,textarea仍然填充了“\ n”字符:

 Coping Option: Delete all codes and replace\nSource Proj Num: R21AR058864-02\nSource PI Last Name: SZALAI\nAppl ID: 7924675; File Year: 7924675\n 

谢谢。

在java中我试图将\ n替换为

不要替换“\ n”。 JTextArea将其解析为新的行字符串。

尝试将其转换为“br”标记也无济于事,因为JTextArea不支持html。

我总是只使用以下代码用文本填充文本区域:

 JTextArea textArea = new JTextArea(5, 20); textArea.setText("1\n2\n3\n4\n5\n6\n7\n8\n9\n0"); 
 // automatically wrap lines jTextArea.setLineWrap( true ); // break lines on word, rather than character boundaries. jTextArea.setWrapStyleWord( true ); 

从这里开始 。

这是一个有效的测试,试一试:

 String str = "This is a test\r\n test."; if(str.contains("\r\n")) { System.out.println(str); } 

假设Javascript(因为您尝试使用HTML中断行替换):

HTML textarea换行符应该是换行符\n而不是HTML断行符
。 尝试使用下面的代码删除额外的斜杠,而不是当前的if语句和替换。 更换后不要忘记将值分配给textarea。

尝试:

 str = str.replaceAll("\\n", "\n"); 

我认为你的问题在这里:

 if(str.contains("\\n")){ 

而不是"\\n"你只需要"\n"

然后,而不是"\n"你需要"\\n"

 str = str.replaceAll("(\r\n|\n)", "
");

顺便说一句, if(str.contains()并不是真正需要的,因为如果没有"\n"字符,运行时不会if(str.contains()全部替换all。