3

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

变量前要打印的空格数response相当于 和 的itemNumberexamineeResponses

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

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

使用上述代码的示例:

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

输出:

"        3"

期望的输出:

"000000003"
4

2 回答 2

9

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

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

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

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

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

而你根本不需要examineeResponses

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

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

于 2012-10-05T08:24:12.483 回答
1

尝试这样的事情:

def formattedString = "blahblah.com?param=${param}&hash=${hash}"
于 2017-03-16T13:09:52.387 回答