杰瑞科技汇

Java String转int有哪些方法?

在 Java 中,将 String 类型转换为 int 类型主要有以下几种方法,我会为你详细介绍每种方法的用法、示例代码以及注意事项。

Java String转int有哪些方法?-图1
(图片来源网络,侵删)

使用 Integer.parseInt()

这是最常用、最直接的方法,它将 String 解析为 int 基本数据类型。

方法签名

public static int parseInt(String s) throws NumberFormatException

示例代码

public class StringToIntExample {
    public static void main(String[] args) {
        String strNumber = "12345";
        try {
            int number = Integer.parseInt(strNumber);
            System.out.println("转换后的 int 值: " + number);
            System.out.println(number + 100); // 可以进行数学运算
        } catch (NumberFormatException e) {
            System.err.println("无法将字符串转换为整数: " + e.getMessage());
        }
    }
}

输出

转换后的 int 值: 12345
12445

注意事项

  • 如果字符串不是有效的整数表示(例如包含非数字字符、为空或超出 int 范围),会抛出 NumberFormatException
  • 字符串可以包含可选的 或 符号表示正负数。

使用 Integer.valueOf()

这个方法返回 Integer 对象(int 的包装类),而不是 int 基本类型,如果需要基本类型,可以进一步拆箱(unboxing)。

方法签名

public static Integer valueOf(String s) throws NumberFormatException

示例代码

public class StringToIntExample {
    public static void main(String[] args) {
        String strNumber = "67890";
        try {
            Integer integerObj = Integer.valueOf(strNumber);
            int number = integerObj; // 自动拆箱(unboxing)
            System.out.println("转换后的 Integer 对象: " + integerObj);
            System.out.println("转换后的 int 值: " + number);
        } catch (NumberFormatException e) {
            System.err.println("无法将字符串转换为整数: " + e.getMessage());
        }
    }
}

输出

转换后的 Integer 对象: 67890
转换后的 int 值: 67890

注意事项

  • parseInt() 类似,如果字符串无效,会抛出 NumberFormatException
  • 返回的是 Integer 对象,适用于需要对象类型(例如泛型集合)的场景。

处理异常情况(空字符串或非数字)

如果字符串可能为空或包含非数字字符,建议使用 try-catch 块捕获 NumberFormatException

示例代码

public class StringToIntExample {
    public static void main(String[] args) {
        String[] testCases = {"123", "-456", "abc", "", "2147483648"}; // 最后一个超出 int 范围
        for (String str : testCases) {
            try {
                int number = Integer.parseInt(str);
                System.out.println("成功转换: " + str + " -> " + number);
            } catch (NumberFormatException e) {
                System.out.println("转换失败: " + str + " -> " + e.getMessage());
            }
        }
    }
}

输出

成功转换: 123 -> 123
成功转换: -456 -> -456
转换失败: abc -> For input string: "abc"
转换失败:  -> For input string: ""
转换失败: 2147483648 -> For input string: "2147483648"

处理带空格的字符串

如果字符串前后有空格,可以使用 String.trim() 方法去除空格后再转换。

Java String转int有哪些方法?-图2
(图片来源网络,侵删)

示例代码

public class StringToIntExample {
    public static void main(String[] args) {
        String strWithSpaces = "  987  ";
        try {
            int number = Integer.parseInt(strWithSpaces.trim());
            System.out.println("转换后的 int 值: " + number);
        } catch (NumberFormatException e) {
            System.err.println("转换失败: " + e.getMessage());
        }
    }
}

输出

转换后的 int 值: 987

处理非十进制字符串(如十六进制)

如果字符串是十六进制(以 0x0X 开头),可以使用 Integer.parseInt() 的重载方法,指定进制。

示例代码

public class StringToIntExample {
    public static void main(String[] args) {
        String hexString = "1A3F"; // 十六进制
        try {
            int number = Integer.parseInt(hexString, 16); // 16 表示十六进制
            System.out.println("转换后的十进制值: " + number); // 6719
        } catch (NumberFormatException e) {
            System.err.println("转换失败: " + e.getMessage());
        }
    }
}

输出

转换后的十进制值: 6719

方法 返回类型 是否抛出异常 适用场景
Integer.parseInt() int(基本类型) 是(NumberFormatException 需要基本类型 int
Integer.valueOf() Integer(包装类) 是(NumberFormatException 需要对象类型(如泛型)
try-catch 处理无效输入

推荐做法

  • 如果确定字符串是有效的整数,直接使用 Integer.parseInt()
  • 如果可能无效,用 try-catch 处理异常。
  • 如果需要对象类型(如 List<Integer>),使用 Integer.valueOf()

希望这些方法能帮助你顺利实现 Stringint 的转换!如果有其他问题,欢迎继续提问。

Java String转int有哪些方法?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇