int与String相互转换常用API
int → String 转换的 API
1. String.valueOf(int i) (推荐)
int num = 123;
String s = String.valueOf(num); // "123"
- 优点:最常用,代码清晰,性能好
- null安全:如果传入 null 会返回 "null"
2. Integer.toString(int i)
int num = 123;
String s = Integer.toString(num); // "123"
- 与
String.valueOf()功能相同,底层实现也类似 - 是 Integer 类的静态方法
3. 字符串拼接 (隐式转换)
int num = 123;
String s = "" + num; // "123"
String s2 = num + ""; // "123"
- 优点:代码简洁
- 缺点:性能稍差,因为会创建 StringBuilder 对象
4. String.format()
int num = 123;
String s = String.format("%d", num); // "123"
- 优点:可以格式化数字(如补零、指定宽度等)
- 缺点:性能较差
5. new StringBuilder().append(int).toString()
int num = 123;
String s = new StringBuilder().append(num).toString(); // "123"
- 一般不直接使用,但在循环中拼接字符串时会用到
String → int 转换的 API
1. Integer.parseInt(String s) (推荐)
String s = "123";
int num = Integer.parseInt(s); // 123
- 最常用的方法
- 异常:如果字符串不是有效数字,抛出
NumberFormatException
2. Integer.valueOf(String s)
String s = "123";
Integer integerObj = Integer.valueOf(s); // Integer 对象
int num = integerObj.intValue(); // 123
// 或者直接拆箱
int num2 = Integer.valueOf(s); // 自动拆箱
- 返回
Integer对象而不是基本类型 int - 有缓存机制(-128 到 127)
3. 带进制的转换
// 二进制转十进制
int binary = Integer.parseInt("1010", 2); // 10
// 十六进制转十进制
int hex = Integer.parseInt("A", 16); // 10
// 八进制转十进制
int octal = Integer.parseInt("12", 8); // 10
4. 处理异常的安全方法
public static int safeParseInt(String s, int defaultValue) {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
return defaultValue;
}
}
// 使用
int num = safeParseInt("123abc", 0); // 返回 0
性能比较(int → String)
从快到慢:
Integer.toString(int i)/String.valueOf(int i)- 字符串拼接
String.format()
完整示例
public class IntStringConversion {
public static void main(String[] args) {
// int → String
int num = 12345;
String s1 = String.valueOf(num);
String s2 = Integer.toString(num);
String s3 = "" + num;
String s4 = String.format("%d", num);
System.out.println(s1); // "12345"
System.out.println(s2); // "12345"
System.out.println(s3); // "12345"
System.out.println(s4); // "12345"
// String → int
String str = "6789";
int n1 = Integer.parseInt(str);
int n2 = Integer.valueOf(str); // 自动拆箱
System.out.println(n1); // 6789
System.out.println(n2); // 6789
}
}
总结
- int → String:推荐使用
String.valueOf(int i) - String → int:推荐使用
Integer.parseInt(String s) - 注意处理
NumberFormatException异常

浙公网安备 33010602011771号