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

Java Integer.parseInt 完整用法解析:進制轉換與異常處理

     編輯:Java 相關知識

方法簽名

public static int parseInt(String s)           // 默認十進制
public static int parseInt(String s, int radix) // 指定進制 (2-36)

參數說明

  • s:數字字符串,可選正負號(+/-),不可含空格或非數字字符。
  • radix:進制基數,範圍 Character.MIN_RADIX (2) 到 Character.MAX_RADIX (36)。超出拋 NumberFormatException。

進制轉換範例

代碼說明結果
Integer.parseInt("9")十進制9
Integer.parseInt("444", 16)十六進制 0x4441092
Integer.parseInt("1010", 2)二進制10
Integer.parseInt("-FF", 16)負十六進制-255
Integer.parseInt("zz", 36)36 進制 (z=35)1295

完整 Demo

public class ParseIntDemo {
    public static void main(String[] args) {
        String[] tests = {"9", "444", "1010", "-FF", "zz", " 123", "12a3"};
        int[] radices = {10, 16, 2, 16, 36, 10, 10};
        
        for (int i = 0; i < tests.length; i++) {
            try {
                int val = Integer.parseInt(tests[i], radices[i]);
                System.out.printf("parseInt(\"%s\", %d) = %d%n", tests[i], radices[i], val);
            } catch (NumberFormatException e) {
                System.out.printf("parseInt(\"%s\", %d) -> NumberFormatException: %s%n", 
                                  tests[i], radices[i], e.getMessage());
            }
        }
    }
}

輸出結果

parseInt("9", 10) = 9
parseInt("444", 16) = 1092
parseInt("1010", 2) = 10
parseInt("-FF", 16) = -255
parseInt("zz", 36) = 1295
parseInt(" 123", 10) -> NumberFormatException: For input string: " 123"
parseInt("12a3", 10) -> NumberFormatException: For input string: "12a3"

關鍵注意點

  1. 不自動去空白:" 123" 會拋異常,需先 s.trim()。
  2. 不支援前綴:"0xFF"、"0b1010" 均不可直接解析,需手動去前綴或用 Integer.decode("0xFF")。
  3. 溢出處理:結果超出 int 範圍(-231 ~ 231-1)拋 NumberFormatException。大數值用 Long.parseLong 或 BigInteger。
  4. 性能:內部逐字符計算,比正則或手寫解析快;熱點路徑可接受。

對應方法家族

  • Integer.valueOf(String):返回 Integer 對象,內部緩存 -128~127,建議優先使用。
  • Integer.decode(String):支援 0x/0X (十六進制)、0 (八進制)、# (十六進制) 前綴。
  • Long.parseLong、Double.parseDouble 等同理。

總結

Integer.parseInt 是字符串轉整數的基石方法,掌握指定進制、異常捕獲、去空白/前綴預處理 是避免運行時錯誤的關鍵。

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