看到一笔试题,如题;
《c程序设计语言》第二版5.2节里有getint函数的代码,并给出了getfloat练习;getint里面还用到了用于ungetch的字符数组。
想想还是用java里的正则表达式来做吧。
在Eclipse里double d=- 0123.0;(负号后面有空格)这种写法并没有错误;输出d,是-123.0;
上面正则认为00.123是一个数字,算是一个不足。
《c程序设计语言》第二版5.2节里有getint函数的代码,并给出了getfloat练习;getint里面还用到了用于ungetch的字符数组。
想想还是用java里的正则表达式来做吧。
public static void main(String[] args) {
String[] ss={"123","123.0","0.123","00.123",
"-00.123","- 0123.0","0.0","0.","- 0."};
for(String s: ss){
System.out.println(s+"==>"+isNumber(s));
}
}
public static boolean isNumber(String arg){
if(arg==null || arg.length()==0) return false;
boolean isNumber=false;
String regex="(\\+|\\-)?\\s*\\d+(\\.\\d+)?";
if(arg.trim().matches(regex))
isNumber=true;
return isNumber;
}
在Eclipse里double d=- 0123.0;(负号后面有空格)这种写法并没有错误;输出d,是-123.0;
上面正则认为00.123是一个数字,算是一个不足。