在 Java 中,将 int 类型转换为 String 类型有多种方法,以下是几种最常用和推荐的方法,从最简单到最灵活,并附有代码示例和解释。

使用 String.valueOf() (最推荐)
这是最常用、最直接的方法。String.valueOf() 是一个静态方法,可以将各种基本数据类型(如 int, double, boolean 等)和对象转换为字符串。
特点:
- 简单直观:语法清晰,一眼就能看懂意图。
- 性能良好:底层实现高效,是官方推荐的转换方式。
- 安全:可以正确处理
null值(虽然int不会是null,但这个方法对其他对象类型很有用)。
代码示例:
int number = 123; // 使用 String.valueOf() 将 int 转换为 String String str1 = String.valueOf(number); System.out.println(str1); // 输出: 123 System.out.println(str1.getClass().getName()); // 输出: java.lang.String
使用 Integer.toString()
Integer 是 int 的包装类。Integer 类提供了一个静态的 toString() 方法,可以直接将 int 值转换为字符串。

特点:
- 语义明确:直接表明了从“整数”到“字符串”的转换,非常清晰。
- 性能与
String.valueOf()相当:String.valueOf(int i)的内部实现就是调用了Integer.toString(i),所以两者在性能上几乎没有差别。
代码示例:
int number = 456; // 使用 Integer.toString() 将 int 转换为 String String str2 = Integer.toString(number); System.out.println(str2); // 输出: 456 System.out.println(str2.getClass().getName()); // 输出: java.lang.String
使用字符串拼接 (简单但不推荐)
这是最简单直观的语法,通过将 int 与一个空字符串 相连,Java 会自动调用 toString() 方法来完成转换。
特点:

- 语法简单:代码量最少,看起来非常“方便”。
- 不推荐:虽然能工作,但在性能上不如前两种方法,因为它会创建一个临时的
StringBuilder对象,更重要的是,这种写法不够清晰,可能被经验丰富的开发者认为是“不专业”或“业余”的写法。
代码示例:
int number = 789; // 使用字符串拼接将 int 转换为 String String str3 = "" + number; System.out.println(str3); // 输出: 789
使用 String.format() (功能强大)
String.format() 方法提供了强大的格式化功能,类似于 C 语言中的 printf,它不仅可以进行类型转换,还可以控制字符串的格式,例如补零、指定宽度等。
特点:
- 功能强大:不仅可以转换,还能格式化输出。
- 灵活性高:当需要特定格式的字符串时(固定长度的数字,不足补零),这是最佳选择。
- 稍显冗长:如果只是简单转换,使用这个方法有点“杀鸡用牛刀”。
代码示例:
int number = 100;
// 使用 String.format() 将 int 转换为 String
String str4 = String.format("%d", number);
System.out.println(str4); // 输出: 100
// 格式化示例:将数字格式化为5位,不足补零
String formattedStr = String.format("%05d", number);
System.out.println(formattedStr); // 输出: 00100
性能对比
虽然在实际应用中,这些方法的性能差异通常可以忽略不计,但了解它们之间的细微差别还是有帮助的。
从最快到最慢(通常情况下的排序):
String.valueOf()/Integer.toString():两者性能几乎相同,非常快。- 字符串拼接 (
"" + number):性能略差,因为会创建一个StringBuilder实例。 String.format():性能最差,因为它需要解析格式字符串,开销最大。
除非你有特殊格式化需求,否则优先使用 String.valueOf() 或 Integer.toString(),两者在功能、性能和可读性上都非常出色,是业界公认的最佳实践。
总结表格
| 方法 | 代码示例 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|---|
String.valueOf() |
String s = String.valueOf(123); |
最推荐,简单,性能好,官方标准 | 无明显缺点 | 日常开发中绝大多数情况 |
Integer.toString() |
String s = Integer.toString(123); |
语义清晰,性能好 | 无明显缺点 | 日常开发中绝大多数情况 |
| 字符串拼接 | String s = "" + 123; |
语法最简单 | 性能略差,可读性不高,不够“专业” | 快速编码、临时测试 |
String.format() |
String s = String.format("%d", 123); |
功能强大,支持复杂格式化 | 性能开销最大,语法稍复杂 | 需要对字符串进行格式化时(如补零、固定宽度) |
对于初学者来说,String.valueOf() 这一种方法就足够应对所有情况了,随着经验增长,你会自然而然地根据具体需求选择最合适的工具。
