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

pup*_*eno 96 java syntax

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

Yuv*_*dam 139

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

char c = 'a';
String s = "hello";
Run Code Online (Sandbox Code Playgroud)

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

  • 而且,当然,这种行为是从C借来的(我认为这可能是在其他地方得到的). (9认同)

Von*_*onC 35

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

char字面值是单个引号中包含的单个字符,如下所示

char myCharacter = 'g'; 
Run Code Online (Sandbox Code Playgroud)

或转义序列,甚至是unicode转义序列:

char a = '\t';    // Escape sequence: tab
char b = '\177'   // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence. 
Run Code Online (Sandbox Code Playgroud)

值得注意的是,在编译期间很早就会处理Unicode转义序列,因此使用'\ u00A'会导致编译器错误.对于特殊符号,最好使用转义序列,即'\n'而不是'\ u00A'.

双引号用于String,你必须\"在字符串内使用"双引号转义序列"(),否则它将终止字符串.
例如:

System.out.println("And then Jim said, \"Who's at the door?\"");
Run Code Online (Sandbox Code Playgroud)

没有必要逃避单引号内的双引号.
以下行在Java中是合法的:

char doublequote = '"';
Run Code Online (Sandbox Code Playgroud)


Edd*_*nne 10

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

System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169
Run Code Online (Sandbox Code Playgroud)

1)第一行是连接HA将导致HA(String literal)

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

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

System.out.println("A"+'N');//AN
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们正在处理将导致的String A和char的串联.NAN


Hor*_*995 5

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

字符c='c';

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

字符串 s="stackoverflow";

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