Java判断字符串是不是整数 您所在的位置:网站首页 11是不是整数 Java判断字符串是不是整数

Java判断字符串是不是整数

2023-11-28 11:42| 来源: 网络整理| 查看: 265

前言

本类所有方法均已加入cntool,可以选择使用本类方法也可以选择使用cntool以maven坐标方式调用,cntool介绍👉cntool介绍

实现思路

在Java中,在使用Integer.parseInt(value)将字符串转为Integer类型时,如果没转成功,程序会出现异常,我们利用这个原理,可以将出现异常的归类为不是整数,未出现异常的归类为整数

代码 /** * 判断字符串是否是整数 */ public static boolean isInteger(String value) { try { Integer.parseInt(value); return true; } catch (NumberFormatException e) { return false; } } 问题

使用这个方法,当整数值为2147483647程序正常返回true,但是一旦值大于2147483647返回的就会是false 2147483647时

//例 public static void main(String[] args) { String str = "2147483647"; System.out.println(isInteger(str)); } /** * 判断字符串是否是整数 */ private static boolean isInteger(String value) { try { Integer.parseInt(value); return true; } catch (NumberFormatException e) { return false; } }

运行后返回结果 返回结果 >2147483647时

//例 public static void main(String[] args) { String str = "2147483648"; System.out.println(isInteger(str)); } /** * 判断字符串是否是整数 */ private static boolean isInteger(String value) { try { Integer.parseInt(value); return true; } catch (NumberFormatException e) { return false; } }

运行后返回结果 返回结果

问题原因

在Java中,Integer类取值和 int 类型取值一致,取值范围是从-2147483648 至 2147483647(-231至 231-1) ,包括-2147483648 和 2147483647。实例中2147483648超过了取值范围,所以产生了数字转换异常,异常如下

java.lang.NumberFormatException: For input string: "2147483648" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:587) at java.lang.Integer.parseInt(Integer.java:615) at com.example.demo.OneDemo.isInteger(OneDemo.java:23) at com.example.demo.OneDemo.main(OneDemo.java:14) 解决思路

换用long类型进行判断,long数据类型是64位、有符号的以二进制补码表示的整数;占8字节,最小值是-9,223,372,036,854,775,808(-2^63)最大值是9,223,372,036,854,775,807(2^63 -1)

/** * 判断字符串是否是long类型 */ public static boolean isLong(String value) { try { Long.valueOf(value); return true; } catch (NumberFormatException e) { return false; } }

使用以上代码即可解决~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有