`

java判断数字

 
阅读更多

 

Java正则表达式JDK工作

最近遇到判断数字的问题,简单总结了一下和大家分享~

 

//1、正则表达式

 public static boolean isNumeric1(String str){

  Pattern pattern = Pattern.compile("[0-9]*");

  return pattern.matcher(str).matches();

 }

 //2、java自带函数

 public static boolean isNumeric2(String str){

  for (int i = str.length();--i>=0;){

   if (!Character.isDigit(str.charAt(i))){

    return false;

   }

  }

  return true;

 }

 //3、正则表达式

 public static boolean isNumeric(String str){

  if(str.matches("\\d*")){

   return true;

  }else{

   return false;

  }

 }

    //4、判断ASCII码值

 public static boolean isNumeric0(String str){

  for(int i=str.length();--i>=0;){

   int chr=str.charAt(i);

   if(chr<48 || chr>57)

    return false;

  }

  return true;

 }

    //5、逐个判断str中的字符是否是0-9

 public static boolean isNumeric3(String str){

  final String number = "0123456789";

  for(int i = 0;i<str.length();i++){  

            if(number.indexOf(str.charAt(i)) == -1){  

             return false;  

            }  

  }  

  return true;

 }

    //6、捕获NumberFormatException异常

 public static boolean isNumeric00(String str){

  try{

   Integer.parseInt(str);

   return true;

  }catch(NumberFormatException e){

   System.out.println("异常:\"" + str + "\"不是数字/整数...");

   return false;

  }

 }

 

 ps:不提倡使用方法6,原因如下:

    1、NumberFormatException是用来处理异常的,最好不要用来控制流程的。  

    2、虽然捕捉一次异常很容易,但是创建一次异常会消耗很多的系统资源,因为它要给整个结构作一个快照。 

 看一下JDK源码:

 public static long parseLong(String s,int radix)  

         throws NumberFormatException  

 {  

    if(s == null){  

       throw   new   NumberFormatException("null");  

    }  

    if(radix < Character.MIN_RADIX){  

           throw new NumberFormatException("radix " + radix +

           " less than Character.MIN_RADIX");  

    }  

    if(radix > Character.MAX_RADIX){  

           throw new NumberFormatException("radix " + radix +

           " greater than Character.MAX_RADIX");  

    }  

    long result = 0;  

    boolean negative = false;

    int i = 0,max = s.length();  

    long limit;  

    long multmin;  

    int digit;

    if(max > 0){  

     if(s.charAt(0) == '-'){  

      negative = true;  

      limit = Long.MIN_VALUE;

      i++;

     }else{

      limit = -Long.MAX_VALUE;

     }  

     multmin = limit / radix;

     if(i < max){  

      digit = Character.digit(s.charAt(i++),radix);  

      if(digit < 0){

            throw new NumberFormatException(s);  

      }else{  

            result = -digit;

      }  

     }  

     while(i < max){  

      // Accumulating negatively avoids surprises near MAX_VALUE

      digit = Character.digit(s.charAt(i++),radix);  

      if(digit < 0){  

       throw new NumberFormatException(s);  

      }  

      if(result < multmin){  

       throw new NumberFormatException(s);  

      }  

      result *= radix;  

      if(result < limit + digit){  

       throw new NumberFormatException(s);  

      }  

      result -= digit;  

    }  

    }else{  

     throw   new   NumberFormatException(s);  

    }  

    if(negative){  

     if(i > 1){  

      return result;

     }else{  

      throw new NumberFormatException(s);  

     }  

    }else{  

     return   -result;  

    }  

 }  

 可以看出来jdk里也是一个字符一个字符的判断,如果有一个不是数字就抛出NumberFormatException,所以还不如这个工作由我们自己来做,还省得再抛出一次异常... 

分享到:
评论

相关推荐

    Java判断数字是否在制定范围

    Java判断数字是否在制定范围 A B 中或者与A B 相等

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式进行数值判断是高效且实用的方法。通过正则表达式,我们可以精确地定义并匹配字符串的格式,从而有效地完成输入验证。该方法适用于各种需要对输入数据进行格式化验证的场景,例如数据校验、...

    Java判断数字位数的方法总结

    Java判断数字位数的方法总结 在Java中,判断数字位数是一个非常重要的知识点,本文将总结两种常用的方法来判断数字位数,这两种方法分别是普通方法和一般函数方法。 普通方法 普通方法使用了while循环来判断数字...

    用java判断是不是数字

    用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字用java判断是不是数字

    java判断字符串是否递增递减或重复

    java判断字符串是否存在递增或递减 java判断字符串是否重复

    java 判断中英文

    在Java编程语言中,判断一个字符串是否包含中文字符或英文字符是常见的需求,这主要涉及到字符编码和字符串处理的知识。本文将深入探讨如何利用Java进行这样的判断。 首先,我们需要了解字符编码的基础。在计算机中...

    java 判断汉字 汉字的判断

    ### Java判断字符串是否包含汉字的方法 在开发过程中,有时我们需要判断一个字符串是否包含汉字,并根据判断的结果执行不同的逻辑。这通常出现在需要处理多语言输入的情况下,例如用户输入验证、文本分析等场景。...

    JAVA对象以及数据的工具类

    包装类提供了许多便利的方法,例如,将字符串转换为对应的数值类型,或者进行数值比较。 在处理对象时,工具类经常扮演重要角色。例如,Apache Commons Lang库中的StringUtils类,提供了大量处理字符串的方法,如...

    java 如何判断回文数字

    在Java中,判断一个整数是否为回文数字是一项常见的任务,常用于各种算法问题。下面我们将详细介绍如何用Java来实现这个功能。 首先,我们可以采用将数字转化为字符串然后比较其正读与反读的方法。这种方法简单易懂...

    java基础-给出一个随机字符串,判断有多少字母?多少数字?

    Java基础-判断随机字符串中的字母和数字 Java是一种广泛应用于软件开发的编程语言,而字符串处理是Java开发中的一项基本操作。在实际开发中,我们经常需要对字符串进行处理和判断,例如判断字符串中有多少字母、...

    java 判断一个数组中的数值是否连续相邻的方法

    Java 判断数组中的数值是否连续相邻的方法 在 Java 编程语言中,判断一个数组中的数值是否连续相邻是一个常见的问题。今天,我们将分享一种简洁的方法来解决这个问题。 方法原理 该方法的主要思想是,遍历数组,...

    回文数字的判断(Java)

    在Java编程中,判断一个数字是否为回文是常见的基础算法问题,这通常涉及到字符串处理和循环结构。下面我们将深入探讨如何用Java实现回文数字的判断。 首先,我们可以将数字转换为字符串,这是因为数字的正反序比较...

    正则表达式 Java 判断字串是否合理

    根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...

    JAVA判断字符串是否为数字字符

    ### JAVA判断字符串是否为数字字符 在日常的Java开发工作中,我们经常需要验证用户输入的数据是否符合预期格式,比如验证电话号码、身份证号等是否仅包含数字。这种情况下,一个简单有效的工具方法就显得尤为重要了...

    java判断一个字符串是否是小数的方法

    Java 判断一个字符串是否是小数的方法 Java 语言中判断一个字符串是否是小数的方法是非常重要的,因为在实际开发中,我们经常需要对用户输入的字符串进行验证,以确保其符合我们的业务逻辑。以下是关于 Java 判断一...

    java 导入及判断的Excel 使用方法

    对于数字,可以通过`CellType.NUMERIC`检查其类型,并用`cell.getNumericCellValue()`获取数值。 **6. 实例分析** 在实际项目中,可能需要处理更复杂的情况,如合并单元格、处理公式、读写图表等。这需要深入理解...

    java实现数字转换人民币中文大写工具

    Java 实现数字转换人民币中文大写工具 Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换...

    java 解析Excel 并判断解析的数据类型__Eclipse工程

    本项目名为"java 解析Excel 并判断解析的数据类型__Eclipse工程",显然是一个使用Java语言在Eclipse环境下实现的程序,其主要功能是读取Excel文件并识别其中各单元格的数据类型。 首先,我们需要了解Java中用于解析...

    JAVA 判断几位数及是否是回文数

    在Java编程语言中,"判断几位数及是否是回文数"是一个常见的算法问题,它涉及到数字处理和字符串操作。让我们深入探讨这个问题的解决方案。 首先,我们要了解什么是回文数。回文数是指一个正向读和反向读都一样的...

Global site tag (gtag.js) - Google Analytics