我正在撰写一个提醒应用,该应用会在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在一起?我怎样才能换新线?
答案 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");
...
}