如何验证用户输入仅包含2位小数的5位数。我使用下面的代码检查5位数,但如何检查2位小数。
if (!id.equals("")) {
try {
Integer.parseInt(id);
if (id.length() <= 5) {
return true;
}
} catch (NumberFormatException nfe) {
return false;
}
}
答案 0 :(得分:5)
DecimalFormat课程将帮助您解决这个问题。您可以检查是否可以根据特定模式解析用户输入。
commons-validator library wraps this up in a convenient method call。
答案 1 :(得分:3)
if(id.matches("\\d{5}\\.\\d{2}"))
return true;
return false;
答案 2 :(得分:3)
可以使用InputVerifier执行Swing中的任何验证。
首先创建自己的输入验证程序
public class MyInputVerifier extends InputVerifier { public boolean verify(JComponent input) { String text = ((JTextField) input).getText(); try { BigDecimal value = new BigDecimal(text); return (value.scale() <= Math.abs(2)); } catch (NumberFormatException e) { return false; } } }
然后将该类的实例分配给您的文本字段。 (实际上任何JComponent都可以验证)
myTextField.setInputVerifier(new MyInputVerifier()); 当然你也可以使用匿名内部类,但如果验证器也用于其他组件,那么普通类就更好了。
另请参阅SDK文档:JComponent#setInputVerifier。