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
的好方法。您的意思是在Windowscmd.exe中?这有点不同,请参阅更新。您是指在Windowscmd.exe
中吗?这有点不同,请参阅更新。