如何验证erate到两位小数?

时间:2014-11-27 00:19:46

标签: java

当我尝试使用验证方法进行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

1 个答案:

答案 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;
}