Java如何将字符串转换为int呢?
下文笔者讲述java代码将字符串转换为int的方法及示例分享,如下所示
字符串转int的实现思路
Integer.parseInt():
返回原始int
Integer.valueOf():
返回一个Integer对象
如:
String number = "88";
// result = 88
int result = Integer.parseInt(number);
// result2 = 88
Integer result2 = Integer.valueOf(number);
String number = "-88";
// result = -88
int result = Integer.parseInt(number);
// result2 = -88
Integer result2 = Integer.valueOf(number);
注意事项,当输入的不是有效数字时
Integer.parseInt()和Integer.valueOf(String)方法都将引发NumberFormatException
例:
NumberFormatException示例
String number = "999AA"; Integer result = Integer.parseInt(number); 输出量 Terminal java.lang.NumberFormatException: For input string: "999A" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) at java.base/java.lang.Integer.parseInt(Integer.java:108) at java.base/java.lang.Integer.valueOf(Integer.java:219)
package com.java265;
public class StringExample1 {
public static void main(String[] args) {
String number = "888";
try {
int result = Integer.parseInt(number);
System.out.println(result);
} catch (NumberFormatException e) {
System.err.println("Unable to convert input string :" + number + " to int");
}
}
}
valueOf示例
package com.java265;
public class StringExample2 {
public static void main(String[] args) {
String number = "666";
try {
Integer result = Integer.valueOf(number);
System.out.println(result);
} catch (NumberFormatException e) {
System.err.println("Unable to convert input string :" + number + " to Integer");
}
}
}
笔者推荐转换前先判断isDigit()后转换Integer.parseInt
package com.java265;
public class StringExample3 {
public static void main(String[] args) {
String number = "-777";
if (isDigit(number)) {
System.out.println(Integer.parseInt(number));
} else {
System.out.println("Please provide a valid digit [0-9]");
}
}
public static boolean isDigit(String input) {
// null or length < 0, return false.
if (input == null || input.length() < 0)
return false;
// empty, return false
input = input.trim();
if ("".equals(input))
return false;
if (input.startsWith("-")) {
// negative number in string, cut the first char
return input.substring(1).matches("[0-9]*");
} else {
// positive number, good, just check
return input.matches("[0-9]*");
}
}
}
Java 8中String转int的示例
package com.java265;
import java.util.Optional;
public class StringExample4 {
public static void main(String[] args) {
String number = "66";
Optional<Integer> result = Optional.ofNullable(number)
.filter(StringExample3::isDigit)
.map(Integer::parseInt);
if (result.isEmpty()) {
System.out.println("Please provide a valid digit [0-9]");
} else {
System.out.println(result.get());
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


