杰瑞科技汇

java将string转换成int

在Java中,将String转换为int有几种常用方法,以下是详细说明和示例代码:

java将string转换成int-图1
(图片来源网络,侵删)

使用 Integer.parseInt()(最常用)

适用于标准十进制整数转换,如果字符串格式不正确会抛出NumberFormatException

String str = "123";
int num = Integer.parseInt(str);
System.out.println(num); // 输出: 123

注意事项

  • 字符串必须只包含数字(可带正负号 /)。
  • 空字符串或非数字字符串会抛出异常:
    String invalidStr = "abc";
    try {
        int num = Integer.parseInt(invalidStr); // 抛出 NumberFormatException
    } catch (NumberFormatException e) {
        System.out.println("无法转换为整数: " + e.getMessage());
    }

使用 Integer.valueOf()

parseInt()功能类似,但返回的是Integer对象(自动装箱为基本类型int)。

String str = "456";
int num = Integer.valueOf(str); // 返回 Integer 对象,自动拆箱为 int
System.out.println(num); // 输出: 456

区别

  • parseInt() 直接返回基本类型 int
  • valueOf() 返回 Integer 对象(适用于需要对象类型的场景)。

处理不同进制(如二进制、十六进制)

使用 Integer.parseInt(String, int) 指定进制:

String binaryStr = "1010"; // 二进制
int num = Integer.parseInt(binaryStr, 2); // 第二个参数是进制(2-36)
System.out.println(num); // 输出: 10(十进制)
String hexStr = "FF"; // 十六进制
int numHex = Integer.parseInt(hexStr, 16);
System.out.println(numHex); // 输出: 255

安全转换(避免异常)

如果字符串可能无效,可以用以下方式处理:

java将string转换成int-图2
(图片来源网络,侵删)

方法1:正则表达式验证

String str = "123";
if (str.matches("-?\\d+")) { // 匹配可选负号+数字
    int num = Integer.parseInt(str);
    System.out.println(num);
} else {
    System.out.println("无效的整数格式");
}

方法2:使用 try-catch

String str = "123";
try {
    int num = Integer.parseInt(str);
    System.out.println(num);
} catch (NumberFormatException e) {
    System.out.println("转换失败: " + str);
}

方法3:Apache Commons Lang(第三方库)

// 需要添加依赖:commons-lang3
String str = "123";
Integer num = NumberUtils.createInteger(str);
if (num != null) {
    System.out.println(num);
} else {
    System.out.println("转换失败");
}

String 中提取数字

如果字符串包含非数字字符(如 "abc123"),需先提取数字部分:

String str = "abc123";
String digits = str.replaceAll("[^0-9-]", ""); // 保留数字和负号
if (!digits.isEmpty()) {
    int num = Integer.parseInt(digits);
    System.out.println(num); // 输出: -123(如果原字符串有负号)
}

方法 返回类型 异常处理 适用场景
Integer.parseInt() int 抛出异常 确保字符串格式正确时
Integer.valueOf() Integer 抛出异常 需要对象类型时
parseInt(str, radix) int 抛出异常 指定进制转换
正则/try-catch 安全处理 避免异常 不确定字符串格式时

根据实际需求选择合适的方法,确保代码健壮性!

java将string转换成int-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇