在Java中字符串String转换为整数int – parseInt()

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

在Java中字符串String转换为整数int - parseInt()

在对字符串进行操作时,有时需要将表示为字符串的数字转换为整数类型。通常用于将String转换为Integer的方法是parseInt()。

如何在Java中使用parseInt()方法?

这种方法有两种变体:

public static int parseInt(String s) throws NumberFormatException

     -  This function parses the string argument as a signed 
        decimal integer.
public static int parseInt(String s, int radix) throws NumberFormatException

     -  This function parses the string argument as a signed
        integer in the radix specified by the second argument.

返回:
简单地说,这两个方法都将字符串转换为与其等效的整数。唯一的区别是参数基数。第一种方法可以认为是radix = 10(Decimal)的第二种方法的等效方法。

参数:

  • s - 需要转换为整数的字符串。它也可以将第一个字符作为减号' - '('\ u002D')或加号'+'('\ u002B')来表示数字的符号。
  • radix - 正在分析字符串时使用的基数。
    注意:此参数仅针对该方法的第二个变体。

异常:
如果发生以下任何情况,则使用此方法抛出NumberFormatException:

对于这两种变体:

  • 字符串为空或零长度
  • 由字符串表示的值不是int类型的值
  • 特别针对函数的parseInt(String s,int radix)变体:
    • 第二个参数radix小于Character.MIN_RADIX或大于Character.MAX_RADIX
    • 字符串的任何字符都不是指定基数的数字,除非第一个字符可能是减号' - '('\ u002D')或加号'+'('\ u002B'),前提是该字符串是长度大于1

例子:

parseInt(“20”)返回20
parseInt(“+ 20”)返回20
parseInt(“ -  20”)返回-20
parseInt(“20”,16)返回16,(2)* 16 ^ 1 +(0)* 16 ^ 0 = 32
parseInt(“2147483648”,10)抛出NumberFormatException
parseInt(“99”,8)抛出一个NumberFormatException异常 
                  因为9不是八进制数字系统的可接受数字
parseInt(“geeks”,28)抛出一个NumberFormatException异常
parseInt(“geeks”,29)返回11670324, 
                  基数为29的数字系统可以有数字0-9 
                  接着是字符a,b,c ... upto s
parseInt(“geeksforgeeks”,29)抛出一个NumberFormatException异常 
                             结果不是整数。

单击“在IDE上运行”按钮,然后尝试将不同的字符串转换为整数:

// Java program to demonstrate working parseInt()
public class GFG
{
    public static void main(String args[])
    {
        int decimalExample = Integer.parseInt("20");
        int signedPositiveExample = Integer.parseInt("+20");
        int signedNegativeExample = Integer.parseInt("-20");
        int radixExample = Integer.parseInt("20",16);
        int stringExample = Integer.parseInt("geeks",29);

        // Uncomment the following code to check
        // NumberFormatException

        //   String invalidArguments = "";
        //   int emptyString = Integer.parseInt(invalidArguments);
        //   int outOfRangeOfInteger = Integer.parseInt("geeksforgeeks",29);
        //   int domainOfNumberSystem = Integer.parseInt("geeks",28);

        System.out.println(decimalExample);
        System.out.println(signedPositiveExample);
        System.out.println(signedNegativeExample);
        System.out.println(radixExample);
        System.out.println(stringExample);
    }
}

输出:

20
20
-20
32
11670324

同样,我们可以将字符串转换为任何其他基本数据类型:

parseLong() - 将字符串解析为Long

parseDouble() - 将字符串解析为Double

如果我们想在不使用parseInt()的情况下将字符串转换为整数,我们可以使用valueOf()方法。它也有两个类似于parseInt()的变体。

parseInt()和valueOf()之间的差异:

parseInt()解析字符串并返回原始整数类型。但是,valueOf()返回一个Integer对象。
注意: valueOf()在内部使用parseInt()来转换为整数。

// Java program to demonstrate working of valueOf()
public class GFG
{
    public static void main(String args[])
    {
        int decimalExample = Integer.valueOf("20");
        int signedPositiveExample = Integer.valueOf("+20");
        int signedNegativeExample = Integer.valueOf("-20");
        int radixExample = Integer.valueOf("20",16);
        int stringExample = Integer.valueOf("geeks",29);

        System.out.println(decimalExample);
        System.out.println(signedPositiveExample);
        System.out.println(signedNegativeExample);
        System.out.println(radixExample);
        System.out.println(stringExample);
    }
}

输出:

20
20
-20
32
11670324
  •   本文标题:在Java中字符串String转换为整数int – parseInt() - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3967.html
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读