有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

char newline = "/n";

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

error: incompatible data types: String cannot be converted to char

我如何解决这个问题


共 (5) 个答案

  1. # 1 楼答案

    根据Oracle Javadoc

    Literals of types char and String may contain any Unicode (UTF-16) characters. Always use 'single quotes' for char literals and "double quotes" for String literals.

    \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"

  2. # 2 楼答案

    使用单引号。i、 e

    char newline = '\n';
    

    话虽如此,Java有一个系统属性来存储当前操作系统的换行符System.getProperty("line.separator");,它返回一个字符串

  3. # 3 楼答案

    我想补充一下@Powerlords的答案,并提到,从JavaSE7开始,可以使用系统检索行分隔符。lineSeparator()表示您可以只写:

    String lineSep = System.lineSeparator();
    

    请记住String在Java中并不是作为原语存在的,而char只是标准Java库的一个类

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

  4. # 4 楼答案

    我认为你使用了错误的转义字符。请像这样更换它

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

    如果有帮助,请告诉我

  5. # 5 楼答案

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