需要获取多行字符串以在文本框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。