我如何将newline字符存储在char变量中



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

char newline = "/n";

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

错误:不兼容的数据类型:无法将字符串转换为char

如何解决或解决此问题?

使用单引号。即。

char newline = 'n';

话虽如此,Java具有用于存储当前操作系统断路的系统属性,System.getProperty("line.separator");返回字符串。

您要求将String分配给char。那永远不会起作用。String文字用双引号字符"划定。字符文字用 single 引用字符'划定。此外,您在字符串中指定了两个字符,而不是一个字符。'/'是一个字符,'n'是另一个字符。如果您想指定逃生序列http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6然后,您需要使用 backslash 字符,而不是前向斜线: 'n'

我认为您正在使用不正确的逃生字符。请像

一样更换它
String s = "hello "+"n";

请尝试让我知道是否有帮助。

根据Oracle Java Doc。

类型字符和字符串的文字可能包含任何Unicode(UTF-16( 人物。始终将"单语引号"用于字符文字和" double 引号"字符串文字。

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

因此,如果 newline 是datatype char ,则使用char newline = 'n'
否则,如果 newline 是datatype string ,则使用 String newline = "n"

我想添加到@powerlords回答,并提及使用System.lineseparator((在Java SE 7开始时,可以将行分隔符取回:

String lineSep = System.lineSeparator();

请记住,Stringchar相比,Java 中的原始性不存在,因为它仅仅是标准Java库的一类。

此解决方案是保持跨操作系统一致性的最佳方法,因为并非所有操作系统都保持单个字节插槽中的线路分离器(char变量(。

最新更新