Java 中 int 和 String 相互转换的实现方法

2025-09-08 05:53:07 世界杯冠军最多

在 Java 开发中,我们常常需要将整数 (int) 和字符串 (String) 进行相互转换。这篇博客将详细解释如何实现这些操作,并分析各种方法的优势和选择场景。

一、将 int 转为 String

在实际应用中,我们第一个场景是将整数转换为字符串,通常用于展示数据或返回 JSON 等情况。以下是常见方法:

1.1 String.valueOf()

这是最简单也是最常用的方法:

int num = 123;

String str = String.valueOf(num);

System.out.println(str); // 输出: "123"

1.2 Integer.toString()

可以使用 Integer 类的静态方法 toString:

int num = 123;

String str = Integer.toString(num);

System.out.println(str); // 输出: "123"

1.3 运算符进行转换

通过和空字符串相连:

int num = 123;

String str = num + "";

System.out.println(str); // 输出: "123"

总结

上述三种方法中,String.valueOf() 更加通用且应该优先考虑。但在非常类型中分情况下,可以依情况选择 Integer.toString() 或运算符转换。

二、将 String 转为 int

另一个常见场景是将字符串转换为整数,通常用于计算或验证。以下是常见实现方法:

2.1 Integer.parseInt()

这是最通用的方法:

String str = "123";

int num = Integer.parseInt(str);

System.out.println(num); // 输出: 123

2.2 Integer.valueOf()

此方法将返回 Integer 对象,如果需要 int,可以进一步转换:

String str = "123";

int num = Integer.valueOf(str);

System.out.println(num); // 输出: 123

注意事项

字符串转换失败:

如果字符串不是合法的整数,如 "123a" 或空字符串,转换将报带数字格式异常:

String str = "123a";

int num = Integer.parseInt(str); // 报带 NumberFormatException

处理低位比的数据:

如果字符串代表十进制之外的数,可通过指定基数:

String str = "1A";

int num = Integer.parseInt(str, 16); // 十六进制转换

System.out.println(num); // 输出: 26

三、应用场景分析

在选择字符串和整数转换方法时,需要考虑到实际场景:

数据展示: 将 int 转换为 String 时,应优先选择 String.valueOf() ,这是一个通用方法。

计算和数据处理: 将 String 转换为 int 时,应优先选择 Integer.parseInt() ,这是最简洁和高效的方法。

字符串格式验证: 在将字符串转为整数前,最好先验证其格式:

String str = "123";

if (str.matches("\\d+")) {

int num = Integer.parseInt(str);

System.out.println(num);

} else {

System.out.println("不是合法整数");

}

结论

通过上述分析,我们可以看到,在 Java 中,字符串和整数转换有多种实现方式,应根据实际需求选择最适合的方法,以保证代码的高效性和精确性。

参考资料

深入理解Java字符串