Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextArea不';无法正确获取新行\n_Java_Swing_Console_Character_Newline - Fatal编程技术网

Java JTextArea不';无法正确获取新行\n

Java JTextArea不';无法正确获取新行\n,java,swing,console,character,newline,Java,Swing,Console,Character,Newline,我正在编写一个提醒应用程序,它在JTextArea中显示特定的文本。当您启动java应用程序时,该文本可以作为consol参数传递,或者(如果没有参数可用)通过另一个JTextArea自定义对话框传递,您可以在其中键入文本 我想在我的提醒中有一段(新行)。当我在JTextArea内的设置对话框中按Enter键时,它工作正常。但是,当我键入Statement1\nstate2时,它会准确地显示此文本,而不是两行(我不能在控制台内键入Enter,可以吗?)。调试代码时,它会使用每个字符,并将反斜杠转

我正在编写一个提醒应用程序,它在
JTextArea
中显示特定的文本。当您启动java应用程序时,该文本可以作为
consol参数
传递,或者(如果没有参数可用)通过另一个
JTextArea
自定义对话框传递,您可以在其中键入文本

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

我已经尝试了
\n
\r\n
甚至
\\n
\\\n
,但它会将每个字符都转换为特定字符


我如何才能实现Java知道反斜杠和n在一起?我怎样才能得到一个新行?

这与Java无关。要在Unix终端中键入Enter,请在其周围加引号,或在其前面加反斜杠或键入Ctrl-V

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

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

这与Java无关。要在Unix终端中键入Enter,请在其周围加引号,或在其前面加反斜杠或键入Ctrl-V

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

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

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

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

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

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

我想您已经从args中获得了转义的
\
。您必须在那里转换它(将\\n替换为\n)。我认为这会有点不方便,但如果这可以工作,为什么不呢我想您已经从args中获得了转义的
\
。您必须在那里转换它(将\\n替换为\n)。我认为这会有点不方便,但如果这可以工作,为什么不呢转换转义的
\\n
的好方法。转换转义的
\\n
的好方法。您的意思是在Windows
cmd.exe中?这有点不同,请参阅更新。您是指在Windows
cmd.exe
中吗?这有点不同,请参阅更新。