问题
Java中的单引号和双引号之间有区别吗?
#1 热门回答(126 赞)
对于literalchar使用单引号,对于literalString使用双引号,如下所示:
char c = 'a';
String s = "hello";
它们不能以任何其他方式使用(例如,在Python中)。
#2 热门回答(31 赞)
char是单个UTF-16字符,即字母,数字,标点符号,制表符,空格或类似内容。
char字面值是单个引号中包含的单个字符,如下所示
char myCharacter = 'g';
或转义序列,甚至是unicode转义序列:
char a = '\t'; // Escape sequence: tab
char b = '\177' // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence.
值得注意的是,Unicode转义序列在编译期间很早就被处理,因此使用'\ u00A'将导致编译器错误。对于特殊符号,最好使用转义序列,即'\ n'而不是'\ u00A'。
双引号为String,你必须在字符串中使用"双引号转义序列"(\"),否则它将终止字符串。
例如:
System.out.println("And then Jim said, \"Who's at the door?\"");
没有必要在单引号内转义双引号。
以下行在Java中是合法的:
char doublequote = '"';
#3 热门回答(7 赞)
让我们考虑这行代码(Java):
System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169
1)第一行是H和A的串联,这将导致HA(字符串文字)
2)其次我们根据ASCII表H = 72和a = 97添加两个char的值,这意味着我们正在添加72+97it,如('H'+'a')。
3)让我们考虑另一个案例:
System.out.println("A"+'N');//AN
在这种情况下,我们正在处理StringA和charN的串联,这将导致AN。