我想使用以下行将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();
请记住,String
类与char
相比,Java 中的原始性不存在,因为它仅仅是标准Java库的一类。
此解决方案是保持跨操作系统一致性的最佳方法,因为并非所有操作系统都保持单个字节插槽中的线路分离器(char
变量(。