最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

常量類型不一樣,分別為String和char的話,輸出結果不一樣,為什么呢?

將常量類型設置為String的話:

public class HelloWorld {

public static void main(String[] args) {

final String GENDER = "男";

final String GENDER2 = "女";

? ? ? ? System.out.println(GENDER+GENDER2);

}

}

輸出結果很正常,是:“男女”;

但是如果類型是char:

public class HelloWorld {

public static void main(String[] args) {

final char GENDER = '男';

final char GENDER2 = '女';

? ? ? ? System.out.println(GENDER+GENDER2);


}

}

輸出結果是很魔性的:52906

這是為什么呢,感覺好神奇,難道是編碼問題?


正在回答

3 回答

char相加是編碼相加

你需要寫成System.out.println(""+GENDER+GENDER2),進行一次強制轉(zhuǎn)換就是你要的結果了

0 回復 有任何疑惑可以回復我~
#1

wunianheng 提問者

謝謝老師,請問System.out.println(""+GENDER+GENDER2)中間的""是怎么起強制轉(zhuǎn)化的作用的呀?
2015-12-07 回復 有任何疑惑可以回復我~
#2

Caballarii 回復 wunianheng 提問者

""是一個String類型的空字符串,""+Gender代表String和char相加,java會把char強制轉(zhuǎn)化成String變成String和String相加,所以""+GENDER結果就是"男",同理,"男"+'女'結果就是"男女"了,記得給最佳答案謝謝
2015-12-07 回復 有任何疑惑可以回復我~
#3

wunianheng 提問者 回復 Caballarii

明白了!謝謝老師~已設為最佳答案
2015-12-07 回復 有任何疑惑可以回復我~

char本來就是int 類型儲存的,+號在java有兩種含義,1是運算 2字符串拼接

男女是拼接 52906是運算

1 回復 有任何疑惑可以回復我~
#1

wunianheng 提問者

謝謝您!
2015-12-07 回復 有任何疑惑可以回復我~
#2

qq_TY習慣_0

那是不是說 男+女就等于52906
2015-12-08 回復 有任何疑惑可以回復我~
#3

Irays 回復 qq_TY習慣_0

'男'+'女'==52906
2015-12-09 回復 有任何疑惑可以回復我~

而且你們看,要是將char類型的兩個常量分別輸出就沒有問題了,如下:

public static void main(String[] args) {

final char GENDER = '男';

final char GENDER2 = '女';

? ? ? ? System.out.println(GENDER);

? ? ? ? System.out.println(GENDER2);

}

輸出結果是:“男\(zhòng)n女”(\n是回車的意思)

0 回復 有任何疑惑可以回復我~
#1

Caballarii

因為單獨輸出時會轉(zhuǎn)換為String類型輸出,你可以看成System.out.println只能輸出String類型,不是String類型就要轉(zhuǎn)換成String類型
2015-12-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

常量類型不一樣,分別為String和char的話,輸出結果不一樣,為什么呢?

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號