java判断string变量是否是数字的六种方法

原文地址 zhuanlan.zhihu.com

java判断string变量是否是数字的六种方法

残枫cps残枫cps

​目录收起 1.用正则表达式2.用JAVA自带的函数3.使用org.apache.commons.lang: 空格 "" 的时候也会当成一个数字4、判断ASCII码值5、逐个判断str中的字符是否是0-96、捕获NumberFormatException异常

1.用正则表达式

首先要import java.util.regex.Pattern 和 java.util.regex.Matcher

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

Matcher isNum = pattern.matcher(str);

if (!isNum.matches()){

return false;

} else {

return true;

}

2.用JAVA自带的函数

public static boolean isNumeric(String str)

{

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

  {  

    System.out.println(str.charAt(i));

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

    {

return false;

   }

  }

return true;

}

3.使用org.apache.commons.lang: 空格 "" 的时候也会当成一个数字

org.apache.commons.lang.StringUtils;

boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");

http://jakarta.apache.org/commons/lang/api-release/index.html下面的解释:public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.

null will return false. An empty String ("") will return true.

StringUtils.isNumeric(null) = false

StringUtils.isNumeric("") = true

StringUtils.isNumeric(" ") = false

StringUtils.isNumeric("123") = true

StringUtils.isNumeric("12 3") = false

StringUtils.isNumeric("ab2c") = false

StringUtils.isNumeric("12-3") = false

StringUtils.isNumeric("12.3") = 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 < number.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;

}

}

posted @ 2023-04-21 10:32  cps666  阅读(1324)  评论(0编辑  收藏  举报