在 Java 中单引号和双引号有区别吗?
使用单引号表示字面 char,使用双引号表示字面 String,如下所示:
char
String
char c = 'a'; String s = "hello";
它们不能以任何其他方式使用(例如,在 Python 中)。
Char 是一个 UTF-16字符,即一个字母、一个数字、一个标点符号、一个制表符、一个空格或类似的东西。
A char literal is either a single one character enclosed in single quote marks like this
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来说,必须在字符串中使用一个“ Double quotesescape 序列”(\") ,否则它将终止字符串。 例如:
\"
System.out.println("And then Jim said, \"Who's at the door?\"");
没有必要转义单引号中的双引号。 以下行在 Java 中是合法的:
char doublequote = '"';
Let's consider this lines of codes (Java):
System.out.println("H"+"A"); //HA System.out.println('H'+'a'); //169
1)第一行是 H和 A的串联,这将导致 HA(字符串文字)
H
A
HA
2)其次,我们加上两个字符的值,根据 ASCII 表 H = 72和 a = 97,这意味着我们加上 72+97,它就像 ('H'+'a')。
a
72+97
('H'+'a')
3) Let's consider another case where we would have:
System.out.println("A"+'N');//AN
在本例中,我们处理的是字符串 A和字符 N的串联,它们将导致 AN。
N
AN
单引号表示字符,双引号表示字符串。
Char c = ‘ c’;
'c'-----> c is a character
字符串 s = “ stackoverflow”;
“ stackoverflow”—— > stackoverflow 是一个字符串(即集合 if 字符)