This week's book giveaways are in the Refactoring and Agile forums.We're giving away four copies each of Re-engineering Legacy Software and Docker in Action and have the authors on-line!See this thread and this one for details.
Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!

# Convert String to primitive int without using Wrapper classes

Anil Verghese
Ranch Hand
Posts: 155
hi,
does anyone know how to convert String to primitive int without use of Wrapper classes.
Anil

Pat Farrell
Rancher
Posts: 4678
7
Originally posted by Anil Verghese:

does anyone know how to convert String to primitive int without use of Wrapper classes.

Not sure I understand what you are asking. Do you want to do something like

without using the nice builtin parse functions?

The obvious way is to convert the String into a byte array, then iterate over the array. Pick up a byte, subtract "0" (ascii character zero) to get the value as an integer, then add it, and multiply by ten every time you pick up the next character.

Not sure this is really "advanced" so maybe I'm not understanding.

Anil Verghese
Ranch Hand
Posts: 155
I shall make my question clear to you..
For example
String s="12";
I want to know how this string can be converted to primitive int without using the methods of Wrapper Class ie Integer class methods should not be used to convert it to primitive.

Nitesh Kant
Bartender
Posts: 1638
Sounds like an interview question.
No serious code will try to do anything like that i believe.

Anyways check out the code in Integer.parseInt(), thats the best way to go

For your convenienece, here it is:

prakash chandra
Greenhorn
Posts: 24
Hi,

Following program shows a logic to convert a string to int without using wrapper class. But this logic will work when input is only a positive number. For negative number input you can modify the logic.

[ August 21, 2007: Message edited by: prakash chandra ]
[ August 24, 2007: Message edited by: prakash chandra ]

Ilja Preuss
author
Sheriff
Posts: 14112
Anil, I think it would help us to help you if you told us *why* you are interested in this.

Pat Farrell
Rancher
Posts: 4678
7
Originally posted by prakash chandra:
For negative number input you can modify the logic.

Yes, that is essentially the same as my suggestion to just subtract ascii zero from the byte. Mine is faster and smaller.

Neither approach works for alphabets that encode digits with other characters.

Ilja Preuss
author
Sheriff
Posts: 14112
Originally posted by Pat Farrell:

Mine is faster and smaller.

Not that I think it matters, but are you sure that it's faster?

Pat Farrell
Rancher
Posts: 4678
7
Originally posted by Ilja Preuss:

Not that I think it matters, but are you sure that it's faster?

No, I'm never sure without hard cold benchmarks. And even then, I'm not sure that the benchmarks are measuring what I think they are measuring.

But

is likely to be slower than

Its less flexible, but when you don't care about radix, it skips a routine call setup/return. Code doesn't get much faster than subtracting a constant.

Ilja Preuss
author
Sheriff
Posts: 14112
I see. Thanks for the clarification!