首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java String 數據類型轉換完全手冊:基本類型雙向轉換、字符數組、Object 與最佳實踐

     編輯:Java 相關知識

String 作為不可變最終類,是 Java 應用中最高頻的數據載體。本文匯總String ↔ 基本類型(long/int/double/float/boolean/char)、String ↔ char[]、String ↔ Object的標準轉換 API、異常場景、性能差異與工程避坑指南,附可直接運行的演示代碼。

String → 基本類型(解析)

目標類型標準 API異常備註
longLong.parseLong(str)NumberFormatException不自動去空格,建議先 trim()
intInteger.parseInt(str)NumberFormatException同長整型
doubleDouble.parseDouble(str)NumberFormatException科學計數法支援
floatFloat.parseFloat(str)NumberFormatException精度較低
booleanBoolean.parseBoolean(str)無(非 true 均 false)只識別 "true"(忽略大小寫),其餘均 false
charstr.toCharArray() / str.charAt(0)IndexOutOfBoundsException單字符用 charAt,整串用 toCharArray

基本類型 → String(格式化)

  • 通用: String.valueOf(基本類型值) — 底層調用對應 Wrapper.toString(),null 安全返回 "null"。
  • 數值格式化: String.format("%,.2f", 1234.5) → "1,234.50",DecimalFormat 更複雜場景。
  • 字符/字符數組: String.valueOf('a')、String.valueOf(new char[]{'a','b'})、String.valueOf(chars, offset, count) 切片。

性能與陷阱對比

// 1. 拼接字符串轉數字(極慢,產生大量臨時對象)
int i = Integer.parseInt("" + 123); // 避免

// 2. 直接 valueOf(推薦)
String s = String.valueOf(123); // 單次分配

// 3. 基本類型 toString(同 valueOf,語義更清晰)
String s2 = Integer.toString(123);

Object ↔ String 特殊規則

  • String.valueOf(obj):obj == null 返回 "null",否則調用 obj.toString()。
  • 直接賦值 Object o = "abc"; 無轉換發生,僅引用指向。
  • 反序列化/JSON 庫(Jackson/Gson)處理複雜對象圖,勿手工拼裝。

工程最佳實踐清單

  1. 解析前 str = str.trim() 防空格導致 NFE。
  2. 捕獲 NumberFormatException 返回默認值或拋業務異常,勿吞噬。
  3. 高頻熱點路徑優先 Integer.toString/Long.toString 避免 valueOf 裝箱開銷(JIT 通常會內聯優化)。
  4. 布爾解析嚴格模式:"true".equalsIgnoreCase(str) 而非 Boolean.parseBoolean(後者容錯過強)。
  5. 字符數組轉 String 优先 new String(char[]) 而非 String.valueOf,語義明確且避免 null 檢查分支。

掌握轉換全景,能消除生產環境中因類型轉換引發的 NPE、NFE、精度丟失、編碼亂碼等頑疾。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved