使用NumberFormat,JFormattedTextField时添加前导零

时间:2015-03-16 14:51:38

标签: java jtextfield number-formatting jformattedtextfield

这有点是这个问题的扩展:Formatting JTextField to accept three digits at most, but anything up to 1-3 digits can be typed

以下代码允许我输入1-3位数字(即1,10,100):

NumberFormat amountFormat = NumberFormat.getNumberInstance();
amountFormat.setMinimumIntegerDigits(1);
amountFormat.setMaximumIntegerDigits(3);
amountFormat.setMaximumFractionDigits(0);

amountField = new JFormattedTextField(amountFormat);

如果输入1或2位数,我想要添加前导零(即1或01 => 001,10 => 010)。

也许我可以以某种方式使用字符串格式化程序?

String.format("%03d", num)

2 个答案:

答案 0 :(得分:0)

您可以使用正则表达式,例如:

if (someString.matches("^\\d{1,2}$")) {
    String appendZero = "0"+someString
}

如果someString恰好包含两位数,则if返回true。

答案 1 :(得分:0)

我认为我没有正确地提出这个问题,但我当前问题的(最简单)答案是在显示给定输入时使用字符串格式(如原始帖子中所示)。