Java如何将字符串转换为int呢?

乔欣 Java经验 发布时间:2023-02-07 22:45:22 阅读数:10134 1
下文笔者讲述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());
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16757817735695.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者