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()); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。