Integer.valueOf()和Integer.parseInt()的区别
Integer.parseInt()
在对字符串进行操作时,有时我们需要将表示为字符串的数字转换为整数类型。Java中一般用于将 String
转换为 Integer 的方法是 parseInt()
。该方法属于 java.lang
包中的 Integer
类。它将一个有效字符串作为参数并将其解析为原始数据类型 int
。它只接受 String 作为参数,并且在传递任何其他数据类型的值时,由于类型不兼容,它会产生错误。
此方法有两种变体:
语法:
示例代码:
运行结果如下:
Integer.valueOf()
此方法是属于 java.lang
包的静态方法,它返回相关的整数对象,其中包含传递的参数的值。此方法可以将整数或字符串作为参数。但是当给定的字符串无效时,它会提供一个错误。此方法也可以将字符作为参数,但输出将是其对应的 Unicode 值。此方法将始终缓存 -128
到 127
(含)范围内的值,并且可能缓存此范围之外的其他值。
语法:
示例:
运行结果:
Integer.parseInt() 和 Integer.valueOf() 的区别
区别1: Integer.valueOf()
返回一个 Integer
对象,而 Integer.parseInt()
返回一个原始 int
。
示例:
运行结果:
区别2: String 和 integer 都可以作为参数传递给 Integer.valueOf()
,而只有 String 可以作为参数传递给 Integer.parseInt()
。
示例:
运行结果(编译错误):
区别3: Integer.valueOf()
可以将字符作为参数并返回其对应的 unicode 值,而 Integer.parseInt()
将在将字符作为参数传递时产生错误。
运行结果:
Integer.parseInt() 和 Integer.valueOf() 对比和区别
Integer.parseInt() | Integer.valueOf() |
---|---|
它只能接受一个字符串作为参数。 | 它可以接受一个字符串和一个整数作为参数。 |
它返回一个原始 int 值。 | 它返回一个 Integer 对象。 |
当整数作为参数传递时,由于类型不兼容而产生错误 | 当整数作为参数传递时,它返回与给定参数对应的 Integer 对象。 |
当字符作为参数传递时,此方法会产生错误(不兼容的类型)。 | 该方法可以接受一个字符作为参数,并会返回对应的unicode。 |
这在性能方面落后了,因为与生成字符串相比,解析字符串需要很多时间。 | 通过缓存频繁请求的值,此方法可能会显着提高空间和时间性能。 |
如果需要原始 int 数据类型,则使用 Integer.parseInt() 方法。 |
如果需要 Wrapper Integer 对象,则使用 valueOf() 方法。 |