Comment faire pour utiliser des chaînes de caractères.format en groovy?
Le code ci-dessous, imprime l' response
variable précédée par des espaces.
Le nombre de places à imprimer avant le response
variable est équivalente à la différence de la itemNumber
et la examineeResponses
.
Maintenant, est-il possible de pad de la chaîne de zéro ("0"
) à la place des espaces avec de la Ficelle.format?
def converted = examineeResponses+String.format("%${itemNumber - 1}s", response)
Exemple en utilisant les codes ci-dessus:
examineeResponses = '1' //String
itemNumber = 10 //int
response = '3' //String
De sortie:
" 3"
De sortie souhaité:
"000000003"
OriginalL'auteur chemilleX3 | 2012-10-05
Vous devez vous connecter pour publier un commentaire.
Je crois que vous pouvez le faire, mais c'est un peu dur à comprendre votre question:
Bien que je soupçonne (tu ne le dis pas) que vous voulez juste de l'imprimer
itemNumbers
caractères de large. Si c'est le cas, vous avez juste besoin d':Et vous n'avez pas besoin
examineeResponses
à tous.Un des morceaux que je lutte avec à votre question est que je ne sais pas ce que
examineeResponses.length()
est censé faire (autre que de jeter une erreur). Un autre est que je ne suis pas sûr que c'est ce que vous voulez faire 😉Vous ne pouvez pas zéro pad Chaînes avec
String.format
en Java ou Groovy, vous ne pouvez zéro du pavé numériqueInteger.length()
n'est pas une méthode. Qu'entendez-vous par la longueur?Entendez-vous la longueur de la Chaîne si vous étiez à convertir l'entier en une Chaîne de caractères? Comme:
"${14}".length() == 2
?examineeResponses est en fait une chaîne, et je suis en utilisant la longueur() pour obtenir sa taille. merci.
Ahhh, j'ai été confus quand vous avez gardé de dire que c'était un
int
dans votre question... mis à Jour le padLeft ligne dans ma réponseOriginalL'auteur tim_yates
Essayer quelque chose comme cela:
C'est ce que je cherchais.
OriginalL'auteur Sergey