java 如何判断字符串是不是可以转换成数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何判断字符串是不是可以转换成数字相关的知识,希望对你有一定的参考价值。

try
String str="123abc";
int num=Integer.valueOf(str);//把字符串强制转换为数字
return true;//如果是数字,返回True
catch (Exception e)
return false;//如果抛出异常,返回False
参考技术A

    用JAVA自带的函数判断,其中Character.isDigit方法:确定或判断指定字符是否是一个数字。

    public static boolean isNumericZidai(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;

    正确的通用代码(传入包含中文、负数、位数很长的数字的字符串也能正常匹配):

    /**

    * 匹配是否包含数字

    * @param str 可能为中文,也可能是-19162431.1254,不使用BigDecimal的话,变成-1.91624311254E7

    * @return

    * @author yutao

    * @date 2016年11月14日下午7:41:22

    */

    public static boolean isNumeric(String str)

    // 该正则表达式可以匹配所有的数字 包括负数

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

参考技术B 有可能是小数哦,所以Integer不合适,还是自己写个方法吧,不如把String每个字节进行for循环,如果 不属于 【0,1,2,3,4,5,6,7,8,9,+,-,.】就是错的,当然还要考虑两个“.”两个“++”的情况 参考技术C str.matches("\\\\d+"); // int
str.matches("\\\\d+(\\\\.)?(\\\\d+)?"); // double or float

参考技术D try
Integer.valueOf(字符串)
catch
System.out.println('不能转');

java如何做到判断一个字符串是不是是数字。

字符串中可以使这一组,135.555或者是5654415都行反正中间不能有有英文,如果有就返回false。也不可以使这种格式135.546.546

楼主看方法:
public class NumberDemo
public static void main(String[] args)
String str1="1122.2.2";
String str2="111";
String str3="111.2";
String str4="111s";
String str5="111.s";
String str6="1s11";
System.out.println(str1+":"+isNum(str1));
System.out.println(str2+":"+isNum(str2));
System.out.println(str3+":"+isNum(str3));
System.out.println(str4+":"+isNum(str4));
System.out.println(str5+":"+isNum(str5));
System.out.println(str6+":"+isNum(str6));

public static boolean isNum(String str)
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");


结果:
1122.2.2:false
111:true
111.2:true
111s:false
111.s:false
1s11:false
参考技术A 如果只是判断,可与用integer.parseint(string)如果是数字,就没有异常,如果有异常,就不是数字
或者用正则表达式
return
string.matches("\\d+\\.?\\d*"));

这个语句就是用来判断的
\\d+表示一个或者多个数字
\\.?
表示一个或这没有小数点
\\d
*
表示0个或者多个数字
参考技术B 正则表达式最好了
public static void main(String[] args)

String str = "135555";

final String reg ="\\d+\\.0,1\\d*";

boolean isDigits = str.matches(reg);

System.out.println(isDigits);

参考技术C 这个可以使用正则表达式^[0-9]*$来判断 参考技术D String s = "safdj123";
boolean isNaN = true;
try
Long testlong = new Long(s);
catch (Exception e)
isNaN = false;

if(isNaN)
System.out.println("恭喜 这还真是个数字!");
else
System.out.println("555 这还真不是一个数字");

以上是关于java 如何判断字符串是不是可以转换成数字的主要内容,如果未能解决你的问题,请参考以下文章

如何判断一个字符串是不是是数字包括小数

java判断是不是是数字

java如何将接收到的数字自动转换为枚举

在java里怎么判断输入的东西是否数字和正整数?(请把详细的代码给我谢谢)

如何用JS判断某个字符串可以转换成日期?

js怎么把字符串转换成数字?