java怎么判断是不是是小数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么判断是不是是小数相关的知识,希望对你有一定的参考价值。
请诸位帮忙,写一个正则表达式,判断字符串是否是小数,用java代码判断我已经写好了,不过正则表达式怎么写,我不知道,虚心求教。
大致的判断逻辑是,第一位可以为+-.数字,之后如果第一位是.的话,那么只能是数字,如果第一位不是.,那么可以包含一个.及任意位数字。
public static boolean isBigDecimal(String value)
char[] charArray = value.toCharArray();
int length = charArray.length;
if (length == 0)
return false;
char first = charArray[0];
// 如果不以.+-数字开头,那么不是小数
boolean net = first == '.';
if (!net && first != '+' && first != '-' && !Character.isDigit(first))
return false;
// 如果第一位有点,那么从第二位开始,只能是数字
if (net)
for (int i = 1; i < length; i++)
if (!Character.isDigit(charArray[i]))
return false;
else
// 如果第一位不是点,那么要判断,只能有一个点
for (int i = 1; i < length; i++)
first = charArray[i];
if (first == '.')
// 两个点的情况下,算错
if (net)
return false;
net = true;
else
if (!Character.isDigit(first))
return false;
return true;
^\\d+\\.\\d+$
2,判断是否位正小数
-\\d+$:
3,判断是否位负整数
你代码里这三个用 “ | ”(或)运算符连接,表示只要是整数或者是正的小数就是true了。
4,另外可以加一句
^-\\d+\\.\\d+$ 判断是否位负的小数
按照你的要求:
Pattern pattern = Pattern.compile("^\\d+$|-\\d+$"); // 就是判断是否为整数
Pattern pattern = Pattern.compile("\\d+\\.\\d+$|-\\d+\\.\\d+$");//判断是否为小数 参考技术B contains不就可以了吗?有那么麻烦吗?
一个能够转化为float的字符串,且包含’.’的数 就是小数了吧
========
if(value == null)
return false;
try
Float.parseFloat(value);
catch(NumberFormatException e)
return false;
if(value.contains("."))
return true;
return false; 参考技术C 你这个方法有些麻烦,程序重要的是算法,有些不直接的方法就不要研究了。
public static boolean isBigDecimal(String value)
double n=Double.parseDouble(value);
int temp;
double i;
temp=(int)n;
i=n-temp;
if(i==0)
return false;
else
return true;
追问
不对的,这个问题我另外一个帖子已经解决了,你有兴趣可以去看看
追答………………………………
本回答被提问者和网友采纳 参考技术D public static final String reg_double = "^[-\\+]?\\d+(\\.\\d+)?$";public static boolean check(String str,String regex)
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(str);
boolean result =m.find();
return result;
以上是关于java怎么判断是不是是小数的主要内容,如果未能解决你的问题,请参考以下文章