JTextArea没有正确获取新行\ n

时间:2013-09-05 16:11:53

标签: java swing console character newline

我正在撰写一个提醒应用,该应用会在JTextArea中显示特定文字。当您启动Java应用程序时,该文本可以作为consol argument传递,或者如果没有可用的参数,则可以使用另一个JTextArea的自定义对话框传递该文本,您可以在其中键入文本。

我想在提醒中添加一个段落(新行)。当我在JTextArea内的设置对话框中按 Enter 时,它可以正常工作。但是当我输入Statement1\nStatement2时,它显示的是这个文本而不是两行(我不能在consol中键入 Enter ,我可以吗?)。当我调试代码时,它会将每个char特定,并将反斜杠转换为双反斜杠,而不是将\ n作为一个char。因此,\n字符\\将被分割为n\n( - >不再有控制符号)。同样的事情发生在consol上,文本作为参数。

我已经尝试了\r\n\\n,甚至\\\n或{{1}},但它会使每个角色特别并转换它。

我怎样才能实现Java知道反斜杠和n在一起?我怎样才能换新线?

2 个答案:

答案 0 :(得分:2)

这与Java无关。要在Unix终端中键入 Enter ,请用引号括起来,或在其前加上反斜杠或键入 Ctrl-V

$ echo "hello
> world"
hello
world

在Windows上,cmd.exe使用^作为转义码。

C:\>java ClassName param1^
More?                                                           (press Enter)
More? param2

答案 1 :(得分:1)

如果要在命令行参数中使用\ n作为分隔符,则必须在代码中替换它,因为所有字符都以这种方式转义。 您可以尝试以下方式:

public static void main(String[] args){
    String formattedString = args[0].replaceAll("\\\\n","\n");
    ...
}