如何在groovy中使用String.format?

che*_*eX3 3 groovy string.format

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

前的要被打印的空格数response变量相当于所述差itemNumberexamineeResponses.

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

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

使用上述代码的示例:

examineeResponses = '1' // String
itemNumber = 10 //int
response = '3' // String
Run Code Online (Sandbox Code Playgroud)

输出:

"        3"
Run Code Online (Sandbox Code Playgroud)

期望的输出:

"000000003"
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 9

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

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

"$response".padLeft( itemNumber - examineeResponses.length(), '0' )
Run Code Online (Sandbox Code Playgroud)

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

"$response".padLeft( itemNumber, '0' )
Run Code Online (Sandbox Code Playgroud)

而你根本不需要examineeResponses.

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

你不能用String.formatJava或Groovy来填充字符串,你只能填零数字