如何在char变量中存储换行符?

时间:2017-04-17 23:53:58

标签: java char newline

我想使用以下行将换行符存储在Java中的char变量中:

char newline = "/n";

我的编译器返回以下内容:

  

错误:不兼容的数据类型:String无法转换为char

我该如何修复或解决此问题?

5 个答案:

答案 0 :(得分:4)

使用单引号。即。

char newline = '\n';

话虽如此,Java有一个系统属性,用于存储当前操作系统的换行符。不过,我不得不抬头看看它是什么。

编辑:

它是System.getProperty("line.separator");,它返回一个字符串。

答案 1 :(得分:1)

我认为你正在使用不正确的转义字符。请替换它

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

如果有帮助,请尝试告诉我。

答案 2 :(得分:1)

您要求将String分配给char。那永远不会奏效。 String文字用双引号字符"描绘。使用单个 - 引号字符'描绘字符文字。此外,您在字符串中指定了两个字符,而不是一个字符。 '/'是一个字符,'n'是另一个字符。如果您尝试指定转义序列 http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6 然后你需要使用反斜杠字符,而不是正斜杠:'\n'

答案 3 :(得分:0)

根据Oracle Java doc

  

char和String类型的文字可以包含任何Unicode(UTF-16)   字符。始终对char字面值使用“单引号”并使用“double”   引用“for String literals。

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 ,则使用String newline = "\n"

答案 4 :(得分:0)

我想添加@Powerlords回答,并提到使用System.lineSeparator()来检索行分隔符,从Java SE 7开始,这意味着你可以写:

String lineSep = System.lineSeparator();

请记住,与String相比,char本身并不像Java中的原语那样存在,因为它只是标准Java库的一类。

此解决方案最适合维护操作系统的一致性,因为并非所有操作系统都在单字节插槽中保留行分隔符(char变量)。