Когда я использую:
char c1 = '\u534e';
System.out.println(+c1);
Затем я получаю:
21326
Но когда я использую:
char c1 = '\u534e';
System.out.println("c1 = " +c1);
Затем я правильно распечатал char:
c1 = 华
В чем проблема?
Когда я использую:
char c1 = '\u534e';
System.out.println(+c1);
Затем я получаю:
21326
Но когда я использую:
char c1 = '\u534e';
System.out.println("c1 = " +c1);
Затем я правильно распечатал char:
c1 = 华
В чем проблема?
В вашем вопросе есть 3 сценария:
<сильный>1. System.out.println(+c1);
Добавление + с типом char преобразует его в int, поэтому будет вызываться метод println(int) из System.out, превращая его в выведите целочисленное значение для этого символа.
<сильный>2. System.out.println(c1);
В этом случае мы не добавили +, поэтому он по-прежнему принимается за char, поэтому в этом случае будет вызываться println(char) и это приведет к печати фактического символа.
<сильный>3. System.out.println("c1 = " +c1);
Когда мы объединяем тип char с String, вся конкатенация будет рассматриваться как String, поэтому в этом случае будет вызываться println(String) и печатается фактический символ с остальной частью строки.
+c1
вSystem.out.println(+c1);
, поэтому я думаю, что обман здесь хорош. - person Tom   schedule 07.05.2017