Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Java low level: Converting between integers and text (part 2)

DZone's Guide to

Java low level: Converting between integers and text (part 2)

· Java Zone
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

Parsing an integer is relatively simple depending on how many checks you make. This loop does almost no validation. The input can multiple '-' signs and the number can overflow. As soon as it reaches a character is does not accept to stops. It is left to the caller to check if this character was a valid separartor.

ByteBufferTextLongReader.read()
long num = 0;
boolean negative = false;
while (true) {
    byte b = buffer.get();
//  if (b >= '0' && b <= '9')
    if ((b - ('0' + Integer.MIN_VALUE)) <= 9 + Integer.MIN_VALUE)
        num = num * 10 + b - '0';
    else if (b == '-')
        negative = true;
    else
        break;
}
return negative ? -num : num;
Note: The expression (b >= '0' && b <= '9') has been re-written taking advantage of an underflow to turn this into one comparison.

To follow...

Converting floating point numbers to text

 

From http://vanillajava.blogspot.com/2011/07/java-low-level-converting-between_14.html

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}