File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Java in General and the fly likes How to keep leading zeros when doing a parseInt Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Java in General
Bookmark "How to keep leading zeros when doing a parseInt" Watch "How to keep leading zeros when doing a parseInt" New topic
Author

How to keep leading zeros when doing a parseInt

Rita Chakras
Greenhorn

Joined: Aug 16, 2005
Posts: 10
Hi,

I have a string which is a combination of a alpha prefix and a number suffix. I extract the prefix and get the number suffix of the string. Then, I do a Integer.parseInt on the suffix to get the value as an integer so that I can increment it. This works ok in general, but not when the suffix has leading zeros. In this case, I need to retain the leading zeros. So, for example, if the suffix is 001, when I parseInt it the integer value become 1 and then when I increment it, it becomes 2. I need it to be 001, 002.

Is there a way to do this?

Thanks in advance.


Rita C.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

After you increment it, convert it back to a String with those leading zeroes.
Rita Chakras
Greenhorn

Joined: Aug 16, 2005
Posts: 10
Problem is I'm not ever sure when the suffix has leading zeros. It depends on what value is being sent in. Also, the suffix may have 1 zeros to n number of zeros, but I don't know that. So I could have:
01, 02, 03 or I could have 08, 09, 10.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

I think you mean you want the resulting String to be N characters, and you want to add leading zeroes until it reaches N characters, right? And you do know what N is, don't you?
Rita Chakras
Greenhorn

Joined: Aug 16, 2005
Posts: 10
Yes, I do know what N is (length of String), but I don't know if the N contains leading zeros or not, and if it does how many leading zeros. So if I increment, I don't know how many zeros I should add or when I should stop adding zeros.

I suppose I could parse through the string to figure out how many zeros it has and stop when it exceeds the length of N?
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11351
    
  16

if you know the length of the original string, the length of the prefix, and the length of the incremented-then-converted-to-a-string integer part, you know how many zeros to add:

input string: prefix0000123
total length:13
prefix length: 6
length of string_after_increment (124): 3

13 - 6 - 3 = 4


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19697
    
  20

If you use java.lang.DecimalFormat or String.format, you can specify the total number of digits. Whatever digits are not filled by the number itself are filled with zeros instead.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Norm Radder
Ranch Hand

Joined: Aug 10, 2005
Posts: 687
    
    1
An easy way to pad with leading 0's
Compute ix to get the number of leading 0's you want

String padded = ("0000000000000"+old).substring(ix); // get rightmost chars
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39062
    
  23
Apart from the fact that String.format won't work on beginners':

int i = . . .;
String numberText = String.format("%010d", i);
Rita Chakras
Greenhorn

Joined: Aug 16, 2005
Posts: 10
Thanks so much for all your help. Fred's solution works well.
 
GeeCON Prague 2014
 
subject: How to keep leading zeros when doing a parseInt