Java String to int

2025年7月2日 | 阅读 5 分钟

在 Java 中,将一个 String 变量转换为 int 变量被认为是一个常见的进程或操作。当处理或操作用户输入时,可能会发生这种情况。我们可以使用 Integer.parseInt() 和 Integer.valueOf() 方法将 String 转换为 int。这些方法返回 Integer 类的实例。

Java Convert String to int

何时使用 String 到 int 的转换?

通常在需要对包含数字的字符串执行数学运算时使用。每当我们从 TextField 或 TextArea 接收数据时,输入的数据都会作为字符串接收。如果输入的数据是数字格式,我们就需要将字符串转换为 int。为此,我们使用 Integer.parseInt() 方法。

使用 Integer.parseInt(String str) 方法

该方法将字符串参数解析为有符号的十进制整数。字符串中的字符必须全部是十进制数字,除了第一个字符可以是表示负值的 ASCII 减号 '-' ('\u002D') 或表示正值的 ASCII 加号 '+' ('\u002B')。

将返回结果整数值,就像将参数和基数 10 作为参数传递给 parseInt(java.lang.String, int) 方法一样。如果字符串不包含可解析的整数,它会抛出 NumberFormatException。

语法

示例:Integer.parseInt(String str) 方法

示例

编译并运行

输出

Parsed integer: 2025

解释

上面的程序使用 Integer.parseInt() 将字符串 "2025" 转换为整数 2025。当从用户输入或文件中读取数字(值以字符串形式存储)时,这尤其有用。

使用 Integer.parseInt(String str, int radix) 方法

该方法将第一个参数中的字符串解析为有符号整数,将第二个参数中的字符串解析为指定基数的整数。如果未指定,Java 中使用的默认基数是 10。字符串中的字符必须全部是指定基数的数字,除了第一个字符。第一个字符可以是表示正值或负值的 + 或 - 号。该方法将返回一个整数值。

如果发生以下任何情况,它将抛出 NumberFormatException

  • 第一个参数为 null 或字符串长度为零。
  • 基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。
  • 字符串的任何字符都不是指定基数的数字,除了第一个字符可以是减号 '-' ('\u002D') 或加号 '+' ('\u002B'),前提是字符串长度大于 1。
  • 字符串表示的值不是 int 类型的值。

语法

public static int parseInt(String s, int radix) throws NumberFormatException

示例

方法返回值
parseInt("0", 10)0
parseInt("473", 10)473
parseInt("+42", 10)42
parseInt("-0", 10)0
parseInt("-FF", 16)-255
parseInt("1100110", 2)102
parseInt("2147483647", 10)2147483647
parseInt("-2147483648", 10)-2147483648
parseInt("2147483648", 10)throws a NumberFormatException
parseInt("99", 8)throws a NumberFormatException
parseInt("PERL", 10)throws a NumberFormatException
parseInt("Kona", 27)411787

示例:Integer.parseInt(String str, int radix) 方法

示例

编译并运行

输出

x = 5
y = 768
z = -1356
a = 0
b = 225
c = 63
p = 0
q = -253
r = 204
t = 2147483647
u = -2147483648
m = 411787

在上面的程序中,请注意变量 v、k 和 l 是注释,因为它们会抛出 NumberFormatException。您可以取消注释来检查。

使用 Integer.valueOf() 方法

Java 中的 Integer.valueOf() 方法是一个静态方法,用于将值(原始 int 或 String)转换为 Integer 对象。它是 java.lang.Integer 类的一部分,通常在我们需要的不是原始 int 而是 Integer 对象时使用。该方法有以下三个重载变体:

  1. valueOf(int i): 它将一个原始 int 转换为 Integer 对象。
  2. valueOf(String s): 该方法解析字符串并返回一个 Integer 对象。如果字符串不是有效的整数,则抛出 NumberFormatException。
  3. valueOf(String s, int radix): 它使用指定的基数(基数)解析字符串并返回一个 Integer 对象。

Integer.valueOf() 方法示例

示例

编译并运行

输出

200

NumberFormatException 情况

如果我们使用的字符串字面量中没有数字,调用 Integer.parseInt() 或 Integer.valueOf() 方法将抛出 NumberFormatException。

示例

编译并运行

输出

Exception in thread "main" java.lang.NumberFormatException: For input string: "hello"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:662)
at java.base/java.lang.Integer.parseInt(Integer.java:778)
at Main.main(Main.java:5)

Java String 转 int 选择题

1. 在 Java 中,Integer.parseInt("101", 2) 的输出是什么?

  1. 5
  2. 101
  3. 21
  4. 19
 

答案:c)

解释: Integer.parseInt("101", 2) 将二进制字符串 "101" 解析为其十进制等价物,即 5。


2. 以下哪个会引起 NumberFormatException?

  1. Integer.parseInt("42")
  2. Integer.valueOf("ABC")
  3. Integer.parseInt("101", 2)
  4. Integer.valueOf("101")
 

答案:b)

解释: Integer.valueOf("ABC") 会引起 NumberFormatException,因为 "ABC" 不是有效的整数表示。


3. Integer.parseInt() 方法在 Java 中的返回类型是什么?

  1. int
  2. Integer
  3. String
  4. double
 

答案:a)

解释: Integer.parseInt() 方法在将字符串输入转换为其整数等价物后,返回一个原始的 int。


4. 如果执行 Integer.parseInt("123"),将返回什么值?

  1. "123"
  2. 123
  3. 1.23
  4. null
 

答案:b)

解释: Integer.parseInt("123") 方法将字符串 "123" 转换为整数值 123。


5. 要将字符串 "123" 转换为 Integer 对象,您会使用哪个方法?

  1. Integer.parseInt()
  2. Integer.toString()
  3. Integer.valueOf()
  4. Integer.intValue()
 

答案:c)

解释: Integer.valueOf("123") 将字符串 "123" 转换为 Integer 对象,而 Integer.parseInt() 将其转换为原始的 int (JavaTPoint)。