Sunday, January 6, 2013

String padding with zeros

String.metaClass.zeropad = { Integer padding = 0 ->
    return ("0" * Math.max(0, (padding ?: 0) - delegate.size())) + delegate
}
Integer.metaClass.zeropad = { Integer padding = 0 ->
    return delegate.toString().zeropad(padding)
}

assert "123".zeropad()     == "123"
assert "123".zeropad(null) == "123"
assert "123".zeropad(5)    == "00123"
assert "1234".zeropad(5)   == "01234"
assert "12345".zeropad(5)  == "12345"
assert "123456".zeropad(5) == "123456"

assert 123.zeropad()     == "123"
assert 123.zeropad(null) == "123"
assert 123.zeropad(5)    == "00123"
assert 1234.zeropad(5)   == "01234"
assert 12345.zeropad(5)  == "12345"
assert 123456.zeropad(5) == "123456"

No comments:

Post a Comment