我正在尝试制作一个正则表达式,以检查某物是否是价格。我不擅长正则表达式,这个给我一个正则表达式语法错误。它应该检查输入是否类似于 13.3 或 0.1 或 .4 或 6 或 200 或 3.04,这些都可以解释为价格。我尝试使用 Double.valueOf(String),但是,这个方法接受像 3.00 这样的字符串,所以超过 2 个浮点数。
private boolean validateAndSet(JTextField tf) {
boolean isDouble = true;
try {
if (tf.getText().matches("^[0-1]*(\\.)?[0-1]{0-2}$")) {
item.setAlertPrice(Double.valueOf(tf.getText()));
return true;
}
isDouble = false;
} catch (NumberFormatException nfe) {
isDouble = false;
} finally {
if (!isDouble) {
System.out.println("Not a price;");
tf.setText("0.00");
}
}
return isDouble;
}