Forums Register Login

Convert String to primitive int without using Wrapper classes

+Pie Number of slices to send: Send
hi,
does anyone know how to convert String to primitive int without use of Wrapper classes.
Anil
+Pie Number of slices to send: Send
 

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.
+Pie Number of slices to send: Send
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.
Thanks in advance..
+Pie Number of slices to send: Send
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:

+Pie Number of slices to send: Send
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 ]
+Pie Number of slices to send: Send
Anil, I think it would help us to help you if you told us *why* you are interested in this.
+Pie Number of slices to send: Send
 

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.
+Pie Number of slices to send: Send
 

Originally posted by Pat Farrell:

Mine is faster and smaller.



Not that I think it matters, but are you sure that it's faster?
+Pie Number of slices to send: Send
 

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.
+Pie Number of slices to send: Send
I see. Thanks for the clarification!
There will be plenty of time to discuss your objections when and if you return. The cargo is this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 9422 times.
Similar Threads
questions
int to float conversion
Why This compile error?
numerology program
simple problem of == & equals( )
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 18, 2024 23:56:55.