Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

java String 转 int 的最详全解

Java 笔记 Java 笔记


java 中,如何高效地把数字的 String 转换为 int,主要推荐两种方式,一种是 jdk 的 Integer.parseInt,另一种是 Guava 的 Ints.tryParse

Guava 的 Ints.tryParse

Google 的 Guava 库提供了静态方法 Ints.tryParse,当参数为非数字的字符串时,返回 null,并不会报错。

如果使用 java 1.8 及以上版本,可以借用 Optional 类来规避繁琐的 null 判断,具体示例如下:

import com.google.common.primitives.Ints;

int num = Optional.ofNullable(myString)
 .map(Ints::tryParse)
 .orElse(0)

myString 为数字字符串时,返回 int 类型的对应数字,若 myStringnull 或者非字符串时,返回 orElse 方法指定的数字,如上示例为 0。

JDK 的 Integer.parseInt

JDK 也直接提供了静态方法 Integer.parseInt,但需要注意的是,如果待转换的字符串为非数字字符串时,会报 NumberFormatException 错误,需要通过 try catch 进行容错,具体示例如下:

int num;
try {
   num = Integer.parseInt(myString);
}
catch (NumberFormatException e)
{
   num = 0;
}

此外,JDK 中也有 Integer.valueOf(str) 静态方法,但是它返回 Integer 封装类型,转换成 int 需要进一步转换。

valueOf 方法正常情况下,返回一个 java.lang.Integer 的新实例或者内部缓存的实例;

parseInt 方法正常情况下,返回基本类型 int