📅  最后修改于: 2020-03-27 05:07:38             🧑  作者: Mango
在对字符串进行操作时,有时需要将以字符串表示的数字转换为整数类型。在Java中通常用于将String转换为Integer的方法是parseInt()。
如何在Java中使用parseInt()方法?
此方法有两种变体:
public static int parseInt(String s) throws NumberFormatException
- 这个方法解析string到一个有符号的整数
public static int parseInt(String s, int radix) throws NumberFormatException
- 这个方法解析string到一个有符号的整数,但进制根据radix来决定
返回:
简单来说,这两种方法都将字符串转换为等效的整数。唯一的区别是参数基数的区别。第一种方法可以视为与第二种方法的等价基数= 10(十进制)。
参数:
异常:
如果发生以下任何一种情况,则此方法引发NumberFormatException:
对于这两种变体:
例子:
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
parseInt("geeks", 28) 报错 NumberFormatException
parseInt("geeks", 29) 返回 11670324,
parseInt("geeksforgeeks", 29) 报错 NumberFormatException
// Java展示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);
// 解注释如下代码,可以验证报错
// NumberFormatException
// String invalidArguments = "";
// int emptyString = Integer.parseInt(invalidArguments);
// int outOfRangeOfInteger = Integer.parseInt("芒果文档",29);
// int domainOfNumberSystem = Integer.parseInt("芒果",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展示函数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