如何在groovy中使用String.format?

时间:2012-10-05 07:55:05

标签: groovy string.format

下面的代码打印以空格开头的response变量。

response变量之前要打印的空格数等于itemNumberexamineeResponses的差异。

现在,是否可以使用String.format将字符串填充为零("0")而不是空格?

def converted = examineeResponses+String.format("%${itemNumber - 1}s", response)

使用上述代码的示例:

examineeResponses = '1' // String
itemNumber = 10 //int
response = '3' // String

输出:

"        3"

期望的输出:

"000000003"

2 个答案:

答案 0 :(得分:9)

我相信你可以做到这一点,但要理解你的问题有点难以理解:

int itemNumber = 10
String examineeResponses = '1'
char response = '3'

"$response".padLeft( itemNumber - examineeResponses.length(), '0' )

虽然我怀疑(你没有说)你只是希望它打印itemNumbers个字符宽。如果是这种情况,您只需要:

"$response".padLeft( itemNumber, '0' )

您根本不需要examineeResponses

我在你的问题中遇到的一个问题是我不知道examineeResponses.length()应该做什么(除了抛出错误)。另一个是我不确定这是你想做的事情; - )

你不能在Java或Groovy中用String.format填充字符串,你只能填零数字

答案 1 :(得分:-1)

尝试这样的事情:

def formattedString = "blahblah.com?param=${param}&hash=${hash}"