问题前提:
当输入价格的时候,往往是不清楚是整数还是小数,想最后是当用户输入是整数的时候就自动变为整数,输入小数变为小数,而且价格是要求是大于0的数字, 这样才合理,下面是我的尝试,
用正则表达式
1.开始的时候写了一个能够判断为整数的方法
/**
* 判断是否为大于0的整数
*
* @param str
* @return
*/
public static double isInteger(String str) {
double result;
// Pattern pattern = Pattern.compile("^1[-\\+]?[\\d]*$");
Pattern pattern = Pattern.compile("^[1-9][\\d]*$");
if (!pattern.matcher(str).matches()) {
System.out.println("你输入的不是数字或不合法,请重新输入大于0的数字!");
Scanner sc = new Scanner(System.in);
result = isInteger(sc.next());
} else {
result = Double.parseDouble(str);
}
return result;
}
还行,能够应付一些各种不和发的输入
2.当加上了这个能够判断的小数的