2012-10-05 48 views
2

下面的代碼打印response變量由空格之後。如何在groovy中使用String.format?

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" 

回答

8

我相信你能做到這一點,但它是一個有點很難理解你的問題:

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中,你只能填零NUMERICS

+0

examineeResponses.length()指的是響應變量的長度。它是一個整數.. – chemilleX3

+0

'Integer.length()'不是方法。你是什​​麼意思的長度? –

+0

如果要將整數轉換爲字符串,是指字符串的長度嗎?像:'「$ {14}」。length()== 2'? –

-1

嘗試是這樣的:

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

這不回答這個問題。 – doelleri

+0

這是我正在尋找,但。 –