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 Convert String to primitive int without using Wrapper classes Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Convert String to primitive int without using Wrapper classes" Watch "Convert String to primitive int without using Wrapper classes" New topic
Author

Convert String to primitive int without using Wrapper classes

Anil Verghese
Ranch Hand

Joined: Oct 11, 2006
Posts: 155
hi,
does anyone know how to convert String to primitive int without use of Wrapper classes.
Anil
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

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

Joined: Oct 11, 2006
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.
Thanks in advance..
Nitesh Kant
Bartender

Joined: Feb 25, 2007
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:



apigee, a better way to API!
prakash chandra
Greenhorn

Joined: Aug 14, 2007
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 ]

SCJP 6.0
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Anil, I think it would help us to help you if you told us *why* you are interested in this.


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

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

Joined: Jul 11, 2001
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

Joined: Aug 11, 2007
Posts: 4659
    
    5

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

Joined: Jul 11, 2001
Posts: 14112
I see. Thanks for the clarification!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Convert String to primitive int without using Wrapper classes