Java 中的 Integer.valueOf() 方法7 Jan 2025 | 7 分钟阅读 valueOf() 方法是一个静态方法,它返回包含传入参数值的相应 Integer 对象。该参数可以是原始数据类型、String 等。Java 的 valueOf() 函数是映射不同数据类型(如字符串和原始类型)到其相应包装类对象的重要工具。仅 Integer 类中就有三种不同的 valueOf() 方法变体,每种都旨在处理特定类型的输入参数。理解这些变体及其相应的用例对于在 Java 程序中进行有效的数据操作和转换至关重要。在本节中,我们将讨论 valueOf() 方法、它的用法、功能以及与其支持的多种参数类型相关的细微差别。 Java valueOf() 方法有三种不同的类型,可以根据其参数进行区分。 它们是
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() 方法的声明 参数
返回值
异常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 编程更加灵活和高效,是一个将各种数据类型转换为相应整数表示形式的有用工具。 |
在本节中,我们将学习什么是迷人数字,并创建 Java 程序来检查给定数字是否迷人。迷人数字程序经常在 Java 编码测试中出现。迷人数字将一个数字分别乘以二和三,...
阅读 3 分钟
铅笔图案是使用循环和其他逻辑概念从星号符号创建的另一种图案。通常要求通过程序绘制图案。我们使用以下方法来编写它的代码:从用户那里获取输入并将其存储到变量中,...
阅读 4 分钟
变量是编程领域中数据存储和操作的基本组成部分。除了使值在程序中可用外,它们还提供了一种临时保存值的方法。但是,并非所有变量都是均等创建的。每个变量都有一个作用域,用于指定...
阅读 3 分钟
消息编码是一种技术,用于使用各种算法将消息转换为不同的格式,以确保机密性和安全性。消息编码的一种有趣方法是使用矩阵乘法。基本思想是将消息表示为……
阅读 4 分钟
给定一个整数 'N'。我们的任务是找出大小等于 N 的二进制字符串的总数,这些字符串不包含连续的 1。示例 1:输入:int N = 4 输出:8 说明:对于 N 等于 4,我们有以下...
阅读9分钟
Java 程序中与安全相关的所有类都位于此包下。下面将讨论各种类:类描述 AccessControlContext 此类负责做出与系统资源访问权限相关的各种决定。该类被声明为……
阅读 6 分钟
在本节中,我们将讨论什么是梅森数,并创建 Java 程序来检查给定数字是否是梅森数。梅森数程序经常出现在 Java 编码面试和学术界。梅森数 在数学中,梅森数是...
阅读 3 分钟
Java 长期以来一直是企业软件开发的核心,以其平台独立性、强大的生态系统和强大的社区支持而闻名。随着我们进入微服务和云计算时代,Java 仍在不断调整和变化,尤其是在引入容器化技术之后...
阅读 8 分钟
给定一个具有唯一值的整数数组,用于查找最大整数。检查数组中的最大数字是否至少是其他所有数字的两倍。如果是,则返回最大元素的索引;如果不是,则返回 -1。示例 1:输入:int...
阅读 4 分钟
这是计算机科学中处理数字领域图像处理和分析的部分。图像处理,由于多媒体的日益使用,已成为图像增强、文本提取、艺术效果等任务中不可或缺的一部分。在本节中,我们...
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India