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

时间:2009-01-13 15:52:59

标签: java syntax

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

4 个答案:

答案 0 :(得分:133)

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

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

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

答案 1 :(得分:33)

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

char literal是单个引号中包含的单个字符,如

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

答案 2 :(得分:8)

让我们考虑这行代码(Java):

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

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

2)其次,我们根据ASCII表H = 72和a = 97添加两个char的值,这意味着我们正在添加72+97它'就像('H'+'a')

3)让我们考虑另一个案例:

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

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

答案 3 :(得分:4)

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

char c ='c';

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

String s =“stackoverflow”;

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