判断字符串是否是数字

看到一笔试题,如题;
《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是一个数字,算是一个不足。



你可能感兴趣的:(java,eclipse,c,正则表达式,D语言)