Forum Discussion

JayKondra's avatar
JayKondra
New Contributor
7 years ago

how to add leading zero to a string or integer using groovy script

how to add leading zero to a string or integer using  groovy script

 

a = 12345

 

Result should be 0000012345 (Len = 10)

  • Hi JayKondra

     

    The Solution Lucian has provided is the quickest and simple but it you want to do an elaborated solution, then you can try below code :

    def a = 1234
    def stringLen = 10
    def strLen = a.toString().size()
    expectedLen = stringLen.toInteger() - strLen.toInteger()
    for(i = 0; i<=expectedLen-1;i++)
    {
    	a = "0" + a 
    }
    
    log.info a
    log.info a.length()

    Click "Accept as Solution" if my answer has helped, and remember to give "kudos" :)

     

    Thanks and Regards,

    Himanshu Tayal

  • If you have an integer value, the Sting.format method linked by Lucian is ideal, but regarding the other half of your question of padding strings...

     

    Groovy strings have the several padding methods included:

    • padRight
    • padLeft
    • center

    So in your example, if the variable "a" was a string, you could do the following:

     

    def a = "12345"
    def zeroPaddedString = a.padLeft(10, "0")
    log.info(zeroPaddedString)

    The following link explains the padding functions in more details:

     

    http://mrhaki.blogspot.com/2009/09/groovy-goodness-padding-strings.html

  • Hi JayKondra

     

    The Solution Lucian has provided is the quickest and simple but it you want to do an elaborated solution, then you can try below code :

    def a = 1234
    def stringLen = 10
    def strLen = a.toString().size()
    expectedLen = stringLen.toInteger() - strLen.toInteger()
    for(i = 0; i<=expectedLen-1;i++)
    {
    	a = "0" + a 
    }
    
    log.info a
    log.info a.length()

    Click "Accept as Solution" if my answer has helped, and remember to give "kudos" :)

     

    Thanks and Regards,

    Himanshu Tayal

  • Radford's avatar
    Radford
    Super Contributor

    If you have an integer value, the Sting.format method linked by Lucian is ideal, but regarding the other half of your question of padding strings...

     

    Groovy strings have the several padding methods included:

    • padRight
    • padLeft
    • center

    So in your example, if the variable "a" was a string, you could do the following:

     

    def a = "12345"
    def zeroPaddedString = a.padLeft(10, "0")
    log.info(zeroPaddedString)

    The following link explains the padding functions in more details:

     

    http://mrhaki.blogspot.com/2009/09/groovy-goodness-padding-strings.html

  • richie's avatar
    richie
    Community Hero
    Hi&nbsp;
    &nbsp;
    I'm not a groovy scripter - i'd like to be, but what i need is a absolutely no initial coding skills groovy course, which doesnt exist - so I tend to just steal snippets of what other people have given me and try and expand those with help - but isn't what you want just a simple concatenation?
    &nbsp;
    Just considering how datatypes work - you wouldn't be able to maintain any leading zeros on an integer I wouldn't have thought cos the zero's would get dropped as 0000012345 = 12345 if numeric - so the values would have to be treated as a string.
    &nbsp;
    my ridiculously poor coding skills have come up with the following:
    &nbsp;
    a = "12345";
    b = "00000";

    log.info(b+a);
    When I executed the above - the response was as follows:&nbsp;&nbsp;
    &nbsp;
    Sun Sep 23 12:12:21 BST 2018: INFO: 0000012345
    &nbsp;
    Is this what you wanted? or have I missed something essential again?
    &nbsp;
    Cheers,
    &nbsp;
    richie