簡體   English   中英

JTextArea無法正確獲取換行

[英]JTextArea doesn't get new line \n correctly

我正在編寫一個提醒應用程序,該應用程序在JTextArea顯示特定文本。 啟動Java應用程序時,該文本可以作為consol argument傳遞,或者(如果沒有可用的參數)與另一個JTextArea的自定義對話框一起傳遞,您可以在其中鍵入文本。

我想在提醒中添加一個段落(新行)。 當我在JTextArea內的設置對話框中按Enter時 ,它可以完美運行。 但是,當我鍵入Statement1\\nStatement2它恰好顯示了此文本,而不是兩行(我不能在控制台中鍵入Enter ,可以嗎?)。 當我調試代碼時,它會占用所有字符,並將反斜杠轉換為雙反斜杠,而不是將\\ n當作一個字符。 因此,字符\\n將被拆分為\\\\n (->不再有控制符號)。 同樣的事情也發生在以文本為參數的consol中。

我已經嘗試過\\n\\r\\n甚至\\\\n\\\\\\n ,但是它會特別考慮每個字符並將其轉換。

如何實現Java知道反斜杠和n在一起? 我怎樣才能換一條新線?

這與Java不相關。 要在Unix終端中輸入Enter ,請用引號引起來,或在其前面加上反斜杠或鍵入Ctrl-V

$ echo "hello
> world"
hello
world

在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");
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM