Java中的单引号和双引号之间有区别吗?


101

Java中的单引号和双引号之间有区别吗?

Answers:


146

对文字chars 使用单引号,对文字s 使用双引号String,如下所示:

char c = 'a';
String s = "hello";

不能以其他任何方式使用它们(例如,在Python中)。


10
而且,当然,这种行为是从C借用的(我想,它可能把它带到了其他地方)。
JesperE

对我而言,int在这种情况下自动将撇号转换为强制类型。因此它不必是char。值得投票...简单化。
Hydroper

36

字符是单个UTF-16字符,即字母,数字,标点符号,制表符,空格或类似内容。

字符文字是这样的单个字符,用单引号引起来:

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 = '"';

12

让我们考虑以下几行代码(Java):

System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169

1)第1行是级联HA,这将导致HA(字符串文字)

2)其次,我们根据ASCII表H= 72和a= 97 添加两个char的值,这意味着我们将72+97其添加为like ('H'+'a')

3)让我们考虑另一种情况:

System.out.println("A"+'N');//AN

在这种情况下,我们要处理String A和char的串联,N这将导致AN


4

单引号表示字符,双引号表示字符串。

char c ='c';

'c'-----> c是一个字符

字符串s =“ stackoverflow”;

“ stackoverflow” ------> stackoverflow是一个字符串(即字符集合)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.