我想使用以下行将换行符存储在Java中的char变量中:
char newline = "/n";
我的编译器返回以下内容:
错误:不兼容的数据类型:String无法转换为char
我该如何修复或解决此问题?
答案 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
变量)。