如何把零前缀为长值<10例如DB Id's



谁能给一点建议关于如何给Id的输出小于10的零前缀。例如,我想在输出标签中显示一个id值,在DB中是Long类型的值4但是在输出标签中,我想以前导为0的形式显示04,我发现了一些情况,但它是关于int primitive type的,所以它有一些转换我无法解决,

到目前为止,我有这个代码:

public String getCode() {           
    PackageVersion packVer = BeanFactory.getHotelDAOService(PackageVersion.class).findOne(selectedDealerCodeId);
    if(packVer.getId() < 10){       
        String id = String.format("%0d", packVer.getId());
    }
    return id;
}

以上方法不工作,如果有人知道更好和合适的解决方案,请让我在这里张贴,谢谢

修改这一行:

String id = String.format("%0d", packVer.getId());

String id = String.format("%02d", packVer.getId());

这将确保至少使用两个空格来打印数字,并且format将用零填充它来实现这一点。
您可能也可以摆脱if语句,我不认为它通过查看代码片段做任何事情。

您正在寻找的格式是%02d,但考虑到您正在做的事情的简单性,您最好使用以下代码片段:

if (packver.getId() < 10) {
  return "0" + packver.getID();
}
return "" + packver.getID();

优化器将在幕后对这些代码做正确的事情,而format()可能会欺骗它。

您的代码中有一个严重的错误,即id没有在您返回它的作用域中定义,因此代码甚至无法编译。一般形式如下:

String id;
if (someCondition) {
  id = someValue;
} else {
  id = otherValue;
}
return id;

在您的特定情况下,if和else子句是相同的,因此您可以完全摆脱分支。

return String.format("%02d", packver.getID());

最新更新