my dog learned polymorphism
The moose likes Beginning Java and the fly likes Adjusting padding formats Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Adjusting padding formats" Watch "Adjusting padding formats" New topic

Adjusting padding formats

manish ahuja
Ranch Hand

Joined: Oct 23, 2003
Posts: 312
Hi there,

Currently I have a int variable which can be of varying size 14,15,16
and I want to construct a String variable of size 20.
I am using java.text.NumberFormat and DecimalFormat classes for the same
So accordingly there should be 6 preceding zeros in case length is 14,
5 preceding zeros when length is 15 and 4 preceding zeros when length is 16.
Currently I have a static number format something like this
NumberFormat numberFormat = new DecimalFormat("00000");
how can i make it more generic where I can specify the total length of the
String and adjust the preceding zeros accordingly

marc weber

Joined: Aug 31, 2004
Posts: 11343

NumberFormat numberFormat = new DecimalFormat("00000000000000000000");


"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
One way is to make a loop that prepends zeros until the string gets to the length you want. You can make that generic and specify the character to pad with, too.

result = rightJustify( "" + myInt, 20, "0" );

A less flexible way - because we hard code the 20 zeros - is to prepend the zeros and substring:

result = "" + myInt
result = ("0000000000000000000000" + result).substring( result.length() )

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
I agree. Here's the link:
subject: Adjusting padding formats
It's not a secret anymore!