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

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

    在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 字符串
  •   本文标题:在Java中字符串String转换为整数int – parseInt() - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3967.html

    发表笔记

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

    更多阅读