為什么字符類型的常量不可以在輸出的時候使用System.out.println(SEX1+'\n'+SEX2);
為什么字符類型的常量不可以在輸出的時候使用
System.out.println(SEX1+'\n'+SEX2);
這種來輸出。這樣寫會輸出一串?dāng)?shù)字?
代碼如下:?
public class HelloWorld{ ? ?
public static void main(String[] args)
?{ final char SEX1='男';
?final char SEX2='女';?
?System.out.println(SEX1+'\n'+SEX2);
?}?
}
2017-04-23
char類型的字符會自動轉(zhuǎn)變?yōu)閕nt型,System.out.println(SEX1+'\n'+SEX2)中'\n'為char型,不是換行符,所以SEX1+'\n'+SEX2是進(jìn)行編碼相加了,應(yīng)該變?yōu)镾ystem.out.println(SEX1+“\n”+SEX2).
2017-04-23
你可以這樣輸出:System.out.println(SEX1+"\n"+SEX2);? "\n"表示的是輸出換行,'\n'表示一個字符。
在這里 System.out.println(SEX1+'\n'+SEX2); ()里面的SEX1, '\n',SEX2都是字符類型,由于是同一類型,自然都可以相加,相加的是它們在Unicode編碼中與之對應(yīng)的數(shù)字。輸出的是 ('男'的Unicode編碼)+('\n'的Unicode編碼)+('女'的Unicode編碼) 之和。
System.out.println(SEX1); 這里輸出的是,SEX1所對應(yīng)的內(nèi)容,即前面定義的 SEX2 = '男';
System.out.println(SEX2); 這里輸出的是,SEX2所對應(yīng)的內(nèi)容,即前面定義的 SEX2 = '女';
2017-04-23
java中漢字編碼是Unicode,在表示一個Unicode的字符時,通常會用“U+”然后緊接著一組十六進(jìn)制的數(shù)字來表示這一個字符,輸出的數(shù)字就是該十六進(jìn)制對應(yīng)的十進(jìn)制數(shù)字
2017-04-23
public class HelloWorld{ ? ?
public static void main(String[] args)
?????{ final char SEX1='男';?
? ? ? ?final char SEX2='女';?
???? ? System.out.println(SEX1+'\n'+SEX2);
?????}?
}
但是把常量類型更換為String就可以正常輸出了。求大神指導(dǎo)下。