基本思想是排除法,排除所有不满足条件的,那么剩下的就是满足条件的!//判断字符串是否为格式正确的数字的方法
public boolean isValidNumber(String text){
String str = text.trim();//将字符串前后的空白字符忽略不计,统统去掉
if(
("-123456789".contains(str.charAt(0)+"")||str.equals("0")||
str.startsWith("0.")||str.startsWith("-0."))==false
)return false;
if(str.lastIndexOf("-")>0)return false;
if(str.lastIndexOf(".")!=str.indexOf("."))return false;
if(str.length()>0)
if("0123456789".contains(str.charAt(str.length()-1)+"")==false)return false;
for(int i=1;i<str.length()-1;i++){
//因为上面的语句已经对第一个和最后一个字符做了判断
//而i不必从0开始是因为此处不可能发生字符串索引越界!即使在字符串只包含一个字符的时候
//因为for循环是先判断循环条件然后才执行,并且循环条件i<str.length()-1保证i不会越界!
if("-.0123456789".contains(str.charAt(i)+"")==false)
return false;
}
return true;
}
//判断字符串是否为格式正确的数字的方法
public boolean isValidNumber(String text){
String str = text.trim();//将字符串前后的空白字符忽略不计,统统去掉
if(
("-123456789".contains(str.charAt(0)+"")||str.equals("0")||
str.startsWith("0.")||str.startsWith("-0."))==false
)return false;//保证合适的开头
if(str.lastIndexOf("-")>0)return false;//如有负号,负号只能在最前面
if(str.lastIndexOf(".")!=str.indexOf("."))return false;//小数点最多出现一次
if(str.length()>0)
if("0123456789".contains(str.charAt(str.length()-1)+"")==false)return false;//保证合适的结尾
for(int i=1;i<str.length()-1;i++){
//因为上面的语句已经对第一个和最后一个字符做了判断
//而i不必从0开始是因为此处不可能发生字符串索引越界!即使在字符串只包含一个字符的时候
//因为for循环是先判断循环条件然后才执行,并且循环条件i<str.length()-1保证i不会越界!
if("-.0123456789".contains(str.charAt(i)+"")==false)
return false;
}
return true;
}