2

当我想为传输事务创建一些代码时,我在 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

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

4

1 回答 1

2

这更像是一个 groovy 问题,您可以使用 groovy GString。

代替:

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

用这个:

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

希望这可以帮助

于 2013-07-13T03:54:12.163 回答