Java 使用NumberFormat、JFormattedTextField时添加前导零

Java 使用NumberFormat、JFormattedTextField时添加前导零,java,jtextfield,number-formatting,jformattedtextfield,Java,Jtextfield,Number Formatting,Jformattedtextfield,这在某种程度上是对这个问题的延伸: 以下代码允许我输入1-3位数(即1、10、100)的值: 如果输入了1或2个数字(即1或01=>001,10=>010),我希望添加前导零 也许我可以使用字符串格式化程序 String.format("%03d", num) 您可以使用正则表达式,例如: if (someString.matches("^\\d{1,2}$")) { String appendZero = "0"+someString } 如果someString正好包含两位数字,

这在某种程度上是对这个问题的延伸:

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

如果输入了1或2个数字(即1或01=>001,10=>010),我希望添加前导零

也许我可以使用字符串格式化程序

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

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

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

如果someString正好包含两位数字,则if返回true

我想我问的问题不正确,但我当前问题的(最简单)答案是在显示给定输入时使用字符串格式(如原始帖子中所建议)。

字符串的格式函数不是为我做了所有检查吗?如果您只想在至少未输入3位数字时用零填充,那么是的。String.format(“%03d”,1)=001 String.format(“%03d”,10)=010 String.format(“%03d”,1)=100 String.format(“%03d”,1011)=1011测试它-我的问题是如何在使用NumberFormat,JFormattedTextField时合并检查/格式化?您想在用户输入时在textfield中显示填充的零吗?然后必须有一个侦听器(PropertyChangeListener),它在键入时捕获值,填充值并更新文本字段或其他标签。填充可以通过String.format()完成。
if (someString.matches("^\\d{1,2}$")) {
    String appendZero = "0"+someString
}