Java輸出字元型變數時與""雙引號拼接問題
阿新 • • 發佈:2018-12-15
public class Demo {
public static void main(String[] args) {
/**
* 字元型變數初始值是字元
*
* 結論:
*
* 當輸出語句中沒有拼接“”時,字元型變數被賦值什麼就輸出什麼;
* 當“”前有2個及2個以上的字元型變數時,轉化為int型別進行計算後輸出;
* 當“”前有1個或者0個字元型變數時,整個輸出語句都轉化成字串型別後輸出;
*/
char ch1 = 'A';
char ch2 = 'B';
// 初始值是什麼就輸出什麼
System.out.println(ch1); // A
// 先轉化為int型別,進行計算
System.out.println(ch1+ ch2); // 131
// 先轉化為int型別,進行計算
System.out.println(ch1+ ch2 + ""); // 131
// ""雙引號前先轉化為int型別,進行計算,""雙引號後轉化為字串型別
System.out.println(ch1+ ch2 + "" + 'C'); // 131C
// ""雙引號前後都轉化為字串
System.out.println(ch1 + "" + ch2 + 'C'); // ABC
// ""雙引號前後都轉化為字串
System.out.println(ch1 + "" + ch2); // AB
// ""雙引號後都轉化為字串
System.out.println("" + ch1+ ch2); // AB
/**
* 字元型變數初始值是字元
*
* 結論:
*
* 當輸出語句中沒有拼接“”時,字元型變數被賦值什麼就輸出什麼;
* 當“”前有2個及2個以上的字元型變數時,轉化為int型別進行計算後輸出;
* 當“”前有1個或者0個字元型變數時,整個輸出語句都轉化成字串型別後輸出;
*/
ch1 = 65;
ch2 = 66;
char ch3 = 67;
// 初始值什麼就輸出什麼
System.out.println(ch1); // 65
// ""雙引號前先轉化為int型別,進行計算後輸出
System.out.println(ch1 + ch2 + ""); // 131
// ""雙引號前轉化為字元型別輸出
System.out.println( ch1 + ""); // A
// ""雙引號前先轉化為int型別,進行計算,""雙引號後轉化為字串型別
System.out.println(ch1 + ch2 + "" + ch3); // 131C
// ""雙引號前後都轉化為字串
System.out.println(ch3 + "" + ch1 + ch2); // CAB
/**
* 拼接物件是字串時,結果和字元型變數初始值是字元相同的結果
*
* 結論:
*
* 當輸出語句中沒有拼接“”時,字元型變數被賦值什麼就輸出什麼;
* 當“”前有2個及2個以上的字元型變數時,轉化為int型別進行計算後輸出;
* 當“”前有1個或者0個字元型變數時,整個輸出語句都轉化成字串型別後輸出;
*/
int a = 1, b = 2 ;
String c = "3";
System.out.println(a + b + c ); // 33
System.out.println(c + a + b); // 312
}
}