Spils中的Sprintf

时间:2013-07-11 14:40:01

标签: grails printf

当我想创建一些转移交易代码时,我在grails中遇到了问题。

def beforeInsert(){
    Integer count= Transfer.count()+1
    Integer width= transactionMaster.width

    String c = sprintf('%05d',count)

    number = transactionMaster.code+"/"+c
}

上面的代码特别是变量号,会得到如下结果:00007。

现在的问题是,如何使'%05'根据可变宽度变化?

例如,如果宽度为5,则数字将给出结果:00007 如果宽度为2,则数字将给出结果:07 如果宽度为10,则数字将给出结果:0000000007

希望有人可以提供帮助,如果您有任何解决方案,可以发邮件给我:medmodest@gmail.com

我很少打开这个网站,谢谢:)

1 个答案:

答案 0 :(得分:2)

这是一个很常见的问题,你可以使用groovy GString。

而不是:

...
String c = sprintf('%05d',count)
...

使用此:

...
String c = sprintf("%0${width}d",count)
...

希望这有帮助