在 Java 開發中,資料類型轉換是基礎且高頻的操作。無論是基本類型之間的轉換,還是基本類型與字串、包裝類別的互轉,掌握正確的方法能避免許多隱性錯誤。本文系統整理了 10 種常見轉換場景,提供標準寫法與注意事項,助你寫出更健壯的程式碼。
int 佔用 4 位元組,short 佔用 2 位元組,屬於擴寬轉換,編譯器自動完成,無需強制轉型。
short shortVar = 100;
int intVar = shortVar; // 自動轉換
可能導致資料截斷,必須顯式造型,且需確認數值在 short 範圍內(-32,768 ~ 32,767)。
int intVar = 50000;
short shortVar = (short) intVar; // 強制轉型,可能溢位
推薦使用 String.valueOf(),它是靜態方法,能安全處理 null,且效能優於串連空字串("" + value)。
int num = 42;
String str = String.valueOf(num); // "42"
float f = 3.14f;
String str = String.valueOf(f); // "3.14"
double d = 3.1415926535;
String str = String.valueOf(d); // "3.1415926535"
char c = 'A';
String str = String.valueOf(c); // "A"
核心方法為各包裝類別的 parseXxx() 或 valueOf()。注意:轉換失敗會拋出 NumberFormatException,實務上必須用 try-catch 捕捉。
String intStr = "10";
String floatStr = "10.5";
String longStr = "99999999";
String doubleStr = "99999999.99";
int i = Integer.parseInt(intStr);
float f = Float.parseFloat(floatStr); // 修正:原文誤用 Integer.parseInt
long l = Long.parseLong(longStr); // 修正:原文誤用 long.parseInt
double d = Double.parseDouble(doubleStr); // 修正:原文誤用 double.parseInt
String s = "100";
byte b = Byte.parseByte(s);
short sh = Short.parseShort(s);
字串無直接轉 char 方法,需取字元陣列或 charAt()。
String s = "abc";
char c = s.charAt(0); // 'a'
只有 "true"(不區分大小寫)回傳 true,其餘皆為 false,不拋出例外。
String s = "true";
boolean flag = Boolean.parseBoolean(s); // 推薦用 parseBoolean,回傳基本型別
// 或 Boolean.valueOf(s) 回傳包裝型別 Boolean
parseXxx 皆可能拋出 NumberFormatException,生產環境務必包裝 try-catch。Integer.parseInt(str, 16) 可解析十六進位字串。StringBuilder 或直接操作基本型別,減少物件建立。