0

我正在编写一个提醒应用程序,它在JTextArea. 该文本可以consol argument在您启动 java 应用程序时传递,或者(如果没有参数可用)与另一个自定义对话框一起传递JTextArea,您可以在其中键入文本。

我想在我的提醒中有一个段落(新行)。当我按下Enter里面的设置对话框时,JTextArea它工作得很好。但是当我输入Statement1\nStatement2它时,它会准确地显示这个文本而不是两行(我不能Enter在控制台中输入 a ,可以吗?)。当我调试代码时,它会特别采用每个字符并将反斜杠转换为双反斜杠,而不是将 \n 作为一个字符。所以字符\n将被分割成\\n(-> 不再有控制符号)。以文本为参数的 consol 也会发生同样的事情。

我已经尝试过\nand\r\n甚至\\nor \\\n,但它需要每个字符并对其进行转换。

我怎样才能使 Java 知道反斜杠和 n 是在一起的?我怎样才能获得一条新线路?

4

2 回答 2

2

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

$ echo "hello
> world"
hello
world

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

C:\>java ClassName param1^
More?                                                           (press Enter)
More? param2
于 2013-09-05T16:17:30.210 回答
1

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

public static void main(String[] args){
    String formattedString = args[0].replaceAll("\\\\n","\n");
    ...
}
于 2013-09-05T16:25:46.453 回答