Java 中的 Integer.valueOf() 方法

7 Jan 2025 | 7 分钟阅读

valueOf() 方法是一个静态方法,它返回包含传入参数值的相应 Integer 对象。该参数可以是原始数据类型、String 等。Java 的 valueOf() 函数是映射不同数据类型(如字符串和原始类型)到其相应包装类对象的重要工具。仅 Integer 类中就有三种不同的 valueOf() 方法变体,每种都旨在处理特定类型的输入参数。理解这些变体及其相应的用例对于在 Java 程序中进行有效的数据操作和转换至关重要。在本节中,我们将讨论 valueOf() 方法、它的用法、功能以及与其支持的多种参数类型相关的细微差别。

Java valueOf() 方法有三种不同的类型,可以根据其参数进行区分。

它们是

  1. Java Integer valueOf(int i) 方法
  2. Java Integer valueOf(String s) 方法
  3. Java Integer valueOf(String s, int radix) 方法

1. Java Integer.valueOf(int i) 方法

Java Integer 类的 valueOf(int i) 方法返回一个表示指定 int 值的 Integer 实例。此方法将始终接受 -128 到 127 范围内的值,并可能缓存此范围之外的其他值。

2. Java Integer.valueOf(String s) 方法

valueOf(String s)Java 的一个内置方法,用于返回一个包含指定字符串值的 Integer 对象。该参数被解释为有符号十进制整数。换句话说,此方法返回一个 Integer 对象,其值等于

它用于将包含数值的字符串转换为相应的 Integer 对象。例如

3. Java Integer.valueOf(String s, int radix) 方法

valueOf(String s, int radix) 方法用于返回一个 Integer 对象,该对象包含在按第二个参数指定的基数解析指定字符串时提取的值。换句话说,此方法返回一个 Integer 对象,其值等于

此方法在处理非十进制数制(如二进制、八进制或十六进制)时特别有用。例如

语法

以下是 valueOf() 方法的声明

参数

数据类型参数描述必需/可选
inti它是用户指定的 int 值,用于转换 Integer 对象。必需
Strings它是一种将被解析为整数对象的 String 类型。必需
int基数它是整数类型,用于转换字符串对象。必需

返回值

方法返回值
valueOf(int i)返回一个 Integer 实例,包含指定参数 int i 的值。
valueOf(String s)返回一个 Integer 实例,包含由字符串参数表示的值。
valueOf(String s, int radix)返回一个 Integer 实例,包含由字符串参数在指定基数中表示的值。

异常

NumberFormatException: 当输入 String 相对于指定的基数不是可解析的 int 时,将抛出异常。

兼容版本

Java 1.5 及以上版本

使用 valueOf() 方法的性能影响

自动将包装类对象转换为其相应原始数据类型的过程称为拆箱,将原始数据类型自动转换为包装类对象的过程称为装箱。在使用 valueOf() 方法时,将原始数据类型作为参数会触发装箱,而从方法返回的包装对象中获取原始值会触发拆箱。

尽管装箱和拆箱很方便,但它们可能会对性能产生不利影响,尤其是在处理大型数据集或代码的关键速度区域时。其原因是装箱和拆箱涉及包装对象的创建和销毁,这可能导致与垃圾回收和内存分配相关的开销。

示例 1

文件名: IntegerValueOfExample1.java

立即测试

输出

Value = 2
Value = -5

解释

此 Java 代码示例使用 Integer 类的 valueOf() 方法。在 main 方法中,使用整数值 35 和 -45 分别实例化了两个 Integer 对象 a 和 b。接下来,我们使用给定的输入调用这些对象的 valueOf() 函数。但是,Integer 类提供的 valueOf() 函数与代码示例中使用的不同。

相反,该策略似乎被误解或滥用。标准 Integer 类中的 valueOf() 函数是静态的,不需要参数。它只返回一个表示给定 int 值的 Integer 实例。因此,按原样编写的代码将无法编译。

示例 2

文件名: IntegerValueOfExample2.java

立即测试

输出

Output Value = 355
Output Value = -355

解释

在本例中,使用值 10 来实例化一个整数对象(i)。声明了字符串 str1 和 str2 的值,分别为 "355" 和 "-355"。然后,使用 valueOf() 函数调用 Integer 对象 i,并将每个字符串作为参数传递。此函数用于将整数的字符串表示形式转换为整数对象。输出表明字符串 "355" 和 "-355" 已成功转换为相应的整数值。

示例 3

文件名: IntegerValueOfExample3.java

立即测试

输出

Desired Value is: 234
Base Number is: 8
Integer Value: 156

解释

在这种情况下,指定了整数基数 8,并使用值 "234" 初始化了字符串 strValue。将基数和字符串作为参数传递给 valueOf() 函数。此函数返回一个 Integer 对象,该对象表示在指定基数中将 strValue 解释为整数时的值。输出显示了将字符串转换为其十进制对应项后生成的整数值 156,以及基数(8)和目标值(234)。

示例 4

文件名: IntegerValueOfExample4.java

立即测试

输出

Enter Desired Value: CDEF
Enter Base Number: 16
Output Value: 52719

解释

在此示例中,控制台提示用户提供基数和所需的值。然后,使用扫描仪读取输入。valueOf() 函数用于将数字的文本表示转换为其十进制表示。它接受两个参数:输入字符串和基数。然后将转换后的值显示在控制台上。用户可以通过此程序动态输入值,以获取其十进制等效值。

示例 5

文件名: IntegerValueOfExample5.java

立即测试

输出

Enter Desired Value: ABCDEF
Exception in thread "main" java.lang.NumberFormatException: For input string: "ABCDEF"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Integer.parseInt(Integer.java:652)
	at java.base/java.lang.Integer.valueOf(Integer.java:983)
	at myPackage.IntegerValueOfExample5.main(IntegerValueOfExample5.java:13)

解释

在这里,程序提示用户从控制台输入一个所需的值。使用扫描仪将输入读取为字符串。然后将输入字符串作为参数传递给 valueOf() 函数,该函数将其转换为相应的整数值。最后,在终端上显示整数值。借助此应用程序,用户可以轻松地从控制台输入值并获取其整数等效值。

结论

本文以对 Java Integer 类中的 valueOf() 方法及其所有变体和应用的全面描述结束。通过了解这些差异,开发人员可以在 Java 程序中有效地操作和转换数据。此外,这些示例展示了该方法的实际用途以及需要注意的潜在危险。总的来说,valueOf() 方法通过将其转换为适当的整数表示形式,使 Java 编程更加灵活和高效,是一个将各种数据类型转换为相应整数表示形式的有用工具。