杰瑞科技汇

Java String转int有哪些方法?

在 Java 中,将 String 类型转换为 int 类型有多种方法,以下是几种常见的方式及其详细说明:

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

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

这是最直接和常用的方法,适用于将纯数字字符串转换为 int

语法

int num = Integer.parseInt(String str);

示例

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

注意事项

  • 格式错误:如果字符串不是有效的数字格式(如 "abc""12a3"),会抛出 NumberFormatException
    String invalidStr = "abc";
    int num = Integer.parseInt(invalidStr); // 抛出 NumberFormatException
  • 空字符串:空字符串 也会抛出 NumberFormatException
  • 超出范围:如果字符串表示的数字超出 int 的范围(如 2147483648),会抛出 NumberFormatException(因为 int 的最大值是 2147483647)。

使用 Integer.valueOf()

Integer.valueOf() 返回的是 Integer 对象(自动拆箱为 int),功能与 parseInt() 类似,但返回的是包装类型。

语法

int num = Integer.valueOf(String str);

示例

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

区别

  • parseInt() 直接返回基本类型 int
  • valueOf() 返回 Integer 对象(会自动拆箱为 int)。

使用 Integer.decode()

Integer.decode() 可以解析带有进制前缀(如 0x 十六进制、0 八进制)的字符串。

语法

int num = Integer.decode(String str);

示例

String hexStr = "0xFF"; // 十六进制
int num = Integer.decode(hexStr);
System.out.println(num); // 输出: 255
String octStr = "010";   // 八进制
int num = Integer.decode(octStr);
System.out.println(num); // 输出: 8

使用 NumberFormatScanner(更灵活)

如果需要处理更复杂的数字格式(如千位分隔符 "1,000"),可以使用 NumberFormatScanner

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

示例(NumberFormat

import java.text.NumberFormat;
String str = "1,000";
NumberFormat format = NumberFormat.getInstance();
int num = format.parse(str).intValue();
System.out.println(num); // 输出: 1000

示例(Scanner

import java.util.Scanner;
String str = "42";
Scanner scanner = new Scanner(str);
int num = scanner.nextInt();
scanner.close();
System.out.println(num); // 输出: 42

手动转换(不推荐)

如果字符串可能包含非数字字符,可以手动检查并转换:

示例

String str = "123abc";
int num = 0;
try {
    num = Integer.parseInt(str.replaceAll("[^0-9]", ""));
} catch (NumberFormatException e) {
    System.err.println("无法转换为数字");
}
System.out.println(num); // 输出: 123(如果字符串是 "123abc")

方法 返回类型 特点
Integer.parseInt() int 最常用,直接转换
Integer.valueOf() Integer(自动拆箱) 返回包装类型
Integer.decode() int 支持进制前缀(如 0x
NumberFormat / Scanner int 支持复杂格式(如 "1,000"

推荐选择

  • 如果字符串是纯数字,优先使用 Integer.parseInt()
  • 如果需要处理进制前缀,使用 Integer.decode()
  • 如果字符串可能包含千位分隔符等复杂格式,使用 NumberFormatScanner

希望这些方法能帮助你完成 Stringint 的转换!如果有更具体的需求,可以进一步讨论。

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