当我尝试使用验证方法进行erate时,它总是无效,如何使用我在方法中使用的代码修复验证方法。
input = JOptionPane.showInputDialog("Enter employee hourly rate: ");
while(checkEname(input) == false)
{
input = JOptionPane.showInputDialog("Invalid! Only rate of two decimal places allowed! Re-enter employee hourly rate ");
}//end while
erate = Double.parseDouble(input);
这是名为
的验证方法 boolean checkErate(String input)
{
int dotCount = 0;
for(int i = 0; i < input.length(); i++)
if(input.charAt(i) == '.')
dotCount++;
else
if(!Character.isDigit(input.charAt(i)))
return false;
if(dotCount !=1 )
return false;
else
if(input.charAt(input.length() - 3) == '.')
return true;
else
return false;
}//end checkErate
答案 0 :(得分:0)
有一种更简单的方法可以检查erate是否为有效数字。
而不是搜索小数点,并评估它的位置,你可以做的是这样的事情:
String [] inputSplit = input.split(".");
if (inputSplit.length() >2) {
return false;
}
if (Pattern.matches("[a-zA-Z]+", inputSplit[0]) == false || Pattern.matches("[a-zA-Z]+", inputSplit[1]) == false){
return false;
}