原文: https://beginnersbook.com/2013/12/how-to-convert-string-to-int-in-java/

在这个教程中,我们将学习如何在 Java 中将String转换为int。如果字符串1,2,3等数字组成,则在将其转换为整数值之前,不能对其执行任何算术运算。在本教程中,我们将看到两种将String转换为int的方法 -

  1. 使用Integer.parseInt(String)方法将字符串转换为int
  2. 使用Integer.valueOf(String)方法将String转换为int

1. 使用Integer.parseInt(String)String转换为int

Integer包装类parseInt()方法将字符串解析为有符号整数。这就是我们进行转换的方式 -

这里我们有一个字符串str,其值为"1234",方法parseInt()str作为参数,并在解析后返回整数值。

  1. String str = "1234";
  2. int inum = Integer.parseInt(str);

让我们看看完整的例子 -

使用Integer.parseInt(String)String转换为int

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. String str="123";
  4. int inum = 100;
  5. /* converting the string to an int value
  6. * ,the value of inum2 would be 123 after
  7. * conversion
  8. */
  9. int inum2 = Integer.parseInt(str);
  10. int sum = inum+inum2;
  11. System.out.println("Result is: "+sum);
  12. }
  13. }

输出:

Java 程序:`String`到`int`的转换 - 图1

字符串中的所有字符必须是数字,但第一个字符可以是减号'-'。例如:

  1. String str="-1234";
  2. int inum = Integer.parseInt(str);

inum的值为 -1234

如果String对转换无效,Integer.parseInt()将抛出NumberFormatException。例如:

  1. String str="1122ab";
  2. int num = Integer.valueOf(str);

这会抛出NumberFormatException。你会看到像这样的编译错误:

  1. Exception in thread "main" java.lang.NumberFormatException: For input string: "1122ab"
  2. at java.lang.NumberFormatException.forInputString(Unknown Source)
  3. at java.lang.Integer.parseInt(Unknown Source)
  4. at java.lang.Integer.parseInt(Unknown Source)

让我们看一下Stringint转换的完整代码。

2. 使用Integer.valueOf(String)String转换为int

Integer.valueOf(String)Integer.parseInt(String)的作用相同。它还将String转换为int值。但是Integer.valueOf()Integer.parseInt()之间存在差异,valueOf(String)方法返回Integer类的对象,而parseInt(String)方法返回原始int值。无论您选择哪种方法,转换的输出都是相同的。这是它的使用方法:

  1. String str="1122";
  2. int inum = Integer.valueOf(str);

inum的值为 1122。

此方法还允许String的第一个字符为减号-

  1. String str="-1122";
  2. int inum = Integer.valueOf(str);

inum的值为 -1122。

parseInt(String)方法类似,当String中的所有字符都不是数字时,它也会抛出NumberFormatException。例如,值为"11aa22"String将引发异常。

让我们看看使用此方法进行转换的完整代码。

使用Integer.valueOf(String)String转换为int

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. //String with negative sign
  4. String str="-234";
  5. //An int variable
  6. int inum = 110;
  7. /* Convert String to int in Java using valueOf() method
  8. * the value of variable inum2 would be negative after
  9. * conversion
  10. */
  11. int inum2 = Integer.valueOf(str);
  12. //Adding up inum and inum2
  13. int sum = inum+inum2;
  14. //displaying sum
  15. System.out.println("Result is: "+sum);
  16. }
  17. }

输出:

Java 程序:`String`到`int`的转换 - 图2

让我们看一下Stringint转换的另一个有趣的例子。

String转换为带有前导零的int

在这个例子中,我们有一个由带有前导零的数字组成的字符串,我们想对保留前导零的字符串执行算术运算。为此,我们将字符串转换为int并执行算术运算,稍后我们将使用format()方法将输出值转换为字符串。

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. String str="00000678";
  4. /* String to int conversion with leading zeroes
  5. * the %08 format specifier is used to have 8 digits in
  6. * the number, this ensures the leading zeroes
  7. */
  8. str = String.format("%08d", Integer.parseInt(str)+102);
  9. System.out.println("Output String: "+str);
  10. }
  11. }

输出:

Java 程序:`String`到`int`的转换 - 图3

参考文献: