0

有人可以就如何为 ID 小于 10 的输出给出零前缀给出一些建议吗?例如,我想在输出标签中显示一个单一的 ID 值,它是 DB 中的 Long 类型,就是这个值4,但在我想显示的某个标签上的输出中以前导零的形式,所以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;
}

以上这种方法不起作用,如果有人对此有更好和合适的解决方案,请让我在这里发帖,谢谢

4

2 回答 2

1

只需更改此行:

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

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

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

于 2013-03-24T16:57:31.193 回答
1

您正在寻找的格式是,%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());
于 2013-03-24T17:00:22.877 回答