Java Integer.parseInt() 方法

2025 年 3 月 25 日 | 阅读 8 分钟

Java parseInt() 方法是 Integer 类 的一个方法,属于 java.lang 包。Java 中的 parseInt() 方法对于将数字的字符串表示形式转换为实际的整数值至关重要。此功能在各种编程场景中是基础性的,例如当数字数据以文本形式(通过用户输入、数据文件或外部系统)传入并需要用于计算、比较或作为应用程序逻辑的一部分时。

转换过程对于正确有效地处理数字数据至关重要,使开发人员能够编写更灵活、更可靠、更强大的 Java 应用程序。通过提供易于使用的工具来处理不同的数据类型,Java 有助于弥合通常以文本为主的数据输入/输出世界与软件开发核心的数字计算之间的鸿沟。

根据其参数,parseInt() 方法有以下三种变体:

  1. parseInt (String s)
  2. parseInt (String s, int radix)
  3. parseInt(CharSequence s, int beginText, int endText, int radix)

parseInt() 方法的目的

Java 中的 parseInt() 方法用于将以文本形式(字符串)编写的数字更改为计算机可以理解和使用的实际数字(整数)。

例如,如果您有文本“149”并且想向其添加 3,您首先需要将“149”更改为数字。以下 Java 程序演示了这一点。

文件名: ParseIntExample.java

输出

152

通过使用 parseInt(),我们可以轻松地将文本转换为数字,从而更容易执行数学运算等操作。当我们处理以文本形式传入但我们需要将其用作数字(例如用户输入或文件中的信息)的数据时,此方法非常有用。

parseInt() 方法的工作原理

Java 中的 parseInt() 方法旨在将字符串转换为整数。以下是其工作原理的逐步分解:

  1. 输入字符串: 该方法首先获取我们想要转换为整数的字符串。此字符串应理想地表示一个数值。
  2. 检查符号: 它查看字符串的第一个字符以确定数字是正数还是负数。这是通过检查“+”(加号)或“-”(减号)符号来完成的。
  3. 忽略符号: 如果有符号,该方法会记录它,但随后在后续步骤中忽略它,只关注字符串的数字部分。
  4. 将字符转换为数字: 该方法逐个字符地遍历字符串,从左侧开始(或者如果有符号,则从符号之后开始)。每个数字字符(如“2”或“7”)都会转换为其整数等效项(2 或 7)。
  5. 处理无效字符: 如果该方法发现不是数字的字符(例如字母“a”或符号“&”),它会停止并抛出错误,因为字符串无法转换为纯数字。
  6. 构建整数: 在转换每个字符时,该方法会构建最终的整数。它通过获取每个数字,从左侧开始,并将其添加到总数中,根据其位置(十位、百位等)进行调整。
  7. 返回结果: 一旦所有字符都已处理并且总整数值已构建,就会返回此数字。如果初始符号为负,该方法会确保最终结果也为负。

此过程允许 parseInt() 方法将数字的字符串表示形式准确转换为实际的整数值,可用于数学运算和需要数值的其他目的。

parseInt() 方法的优点

Java 中的 parseInt() 方法具有多项优点,使其成为开发人员的有用工具。以下是一些主要优点:

  1. 将字符串转换为整数: 它能够将数字的字符串表示形式转换为整数值,这对于在程序中执行算术运算和逻辑比较至关重要。
  2. 支持各种数字基数: 借助 parseInt(String s, int radix) 变体,它可以解析表示不同基数(从二进制到十六进制及更高)的数字字符串,从而为处理以各种数字系统编码的数值数据提供了灵活性。
  3. 促进数据解析: 它在涉及从用户输入、文件或网络响应中解析数据的场景中特别有用,其中数字数据通常以字符串形式接收。
  4. 错误处理: 当输入字符串无法解析为整数时,它会抛出 NumberFormatException。此异常机制有助于验证输入数据和实现健壮的错误处理,确保程序可以优雅地处理无效输入。
  5. 提高性能: 将数字的字符串表示形式转换为其整数等效项在 Java 中经过优化,使 parseInt() 方法高效且适用于对性能敏感的应用程序。
  6. 简化代码: 使用 parseInt() 通过抽象手动数字解析的复杂性来简化代码。开发人员可以专注于核心逻辑,而无需担心将字符串数据转换为整数的细节。
  7. Java 标准库的组成部分: 作为标准 lang 包的一部分,它易于获取,不需要任何额外的库或框架,确保了不同 Java 应用程序的兼容性和易用性。
  8. 强大的类型安全: 通过将字符串转换为整数,它强化了 Java 的强类型系统,允许开发人员使用定义明确的数据类型并利用 Java 的编译时类型检查。

parseInt() 方法的语法

以下是 parseInt () 方法的声明

参数

数据类型参数描述必需/可选
Strings这是一个需要转换为等效整数的字符串。必需
int基数解析字符串时要使用的基数必需
intbeginIndex开始索引(包含)。必需
intendIndex结束索引(不包含)。必需
CharSequences这是需要转换为等效整数的 CharSequence。必需

返回值

方法返回值
parseInt (String s)此方法返回由参数以十进制等效形式表示的整数值。
parseInt (String s, int radix)此方法返回由字符串参数以指定基数表示的整数值。
parseInt (String s, int radix)此方法返回由字符串参数以指定基数表示的整数值。

异常

NullPointerException: 如果 s 为 null。

IndexOutOfBoundsException: 如果 beginIndex 为负数,或者如果 beginIndex 大于 endIndex,或者如果 endIndex 大于 s.length ()。

NumberFormatException: 如果 CharSequence 不包含指定基数的可解析整数,或者如果 radix 小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。

兼容版本

Java 1.2 及以上版本

  • parseInt (String s)
  • parseInt (String s, int radix)

Java 9

  • parseInt (CharSequence s, int beginText, int endText, int radix)

1. Java Integer parseInt (String s) 方法

此方法将 String 参数解析为带符号的十进制整数对象。字符串中的字符必须是十进制数字,但字符串的第一个字符可以是 ASCII 减号 '-' 以表示负值,或 ASCII 加号 '+' 以表示正值。它返回由参数以十进制整数表示的整数值。

语法

文件名: ParseIntExample.java

输出

The string converted to integer is: 1234
After adding 100 to the converted integer: 1334

2. Java Integer parseInt (String s, int radix) 方法

此方法将 String 参数解析为带符号的十进制整数对象,其 radix 由第二个参数指定。字符串中的字符必须是指定参数的十进制数字,但第一个字符可以是 ASCII 减号 '-' 以表示负值,或 ASCII 加号 '+' 以表示正值。将返回结果整数值。

语法

文件名: ParseIntRadixExample.java

输出

ParseIntRadixExample

3. Java Integer parseInt (CharSequence s, int beginText, int endText, int radix)

此方法将 CharSequence 参数解析为指定 radix 参数中的带符号整数,从指定的 beginIndex 开始并扩展到 endIndex - 1。此方法不采取措施防止 CharSequence 在解析过程中发生变异。

语法

文件名: ParseIntCharSequenceExample.java

输出

The parsed integer is: 43981

示例 1

文件名: IntegerParseIntExample1.java

输出

Value = 20
Value = 20
Value = -20

示例 2

文件名: IntegerParseIntExample2.java

输出

Value = 104
Value = 512
Value = -484

示例 3

文件名: IntegerParseIntExample3.java

输出

200100
300

示例 4

文件名: IntegerParseIntExample4.java

输出

int i = 100

示例 5

文件名: IntegerParseIntExample5.java

输出

Exception in thread "main" java.lang.NumberFormatException: For input string: "10A"
	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.parseInt(Integer.java:770)
	at myPackage.IntegerParseIntExample5.main(IntegerParseIntExample5.java:6)

总的来说,parseInt() 方法是 Java 应用程序中处理和操作数字数据的强大实用程序,它提供了灵活性、效率和鲁棒性的结合。