簡體   English   中英

如何在 char 變量中存儲換行符?

[英]How can I store newline character in char variable?

我想使用以下行將換行符存儲在 Java 中的 char 變量中:

char newline = "/n";

我的編譯器返回以下內容:

錯誤:不兼容的數據類型:字符串無法轉換為字符

我該如何解決或解決此問題?

使用單引號。 IE

char newline = '\n';

話雖如此,Java 有一個系統屬性,用於存儲當前操作系統的換行符System.getProperty("line.separator"); ,它返回一個字符串。

您要求將String分配給char 那永遠行不通。 String字面量用雙引號字符"划定。字符字面量用引號字符'划定。此外,您在字符串中指定了兩個字符,而不是一個。 '/'是一個字符,而'n'是另一個。如果您嘗試指定轉義序列http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6那么您需要使用反斜杠字符,而不是正斜杠: '\\n'

我認為您使用了不正確的轉義字符。 請更換它像

String s = "hello "+"\n";

請嘗試讓我知道它是否有幫助。

根據 Oracle Java 文檔

char 和 String 類型的文字可以包含任何 Unicode (UTF-16) 字符。 始終對字符文字使用“單引號”,對字符串文字使用“雙引號”。

char 和 string 的轉義序列如下:
\\b (backspace), \\t (tab), \\n (line feed), \\f (form feed), \\r (carriage return), \\" (double quote), \\' (single quote), and \\\\ (backslash)

因此,如果換行符的數據類型為char,則使用char newline = '\\n'
否則,如果換行符的數據類型為字符串,則使用String newline = "\\n"

我想添加到@Powerlords 的答案並提到行分隔符可以從 Java SE 7 開始使用 System.lineSeparator() 進行檢索,這意味着您可以只寫:

String lineSep = System.lineSeparator();

請記住,與char相比, String本身並不作為 Java的原語存在,因為它只是標准 Java 庫的一個類。

此解決方案最適合保持跨操作系統的一致性,因為並非所有操作系統都在單個字節槽( char變量)中包含行分隔符。

暫無
暫無

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

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