Will Do
Thoughts on technology, the world, and life.

Parse A Signed Integer

Java:

int atoi(String s) {
    if (s == null) throw new NullPointerException();
    int length = s.length();
    if (length == 0) throw new NumberFormatException();
    char[] c = s.toCharArray();
    int n = 0;
    boolean negative = c[0] == '-';
    for (int i = negative ? 1 : 0; i < length; ++i) {
        if (!Character.isDigit(c[i])) throw new NumberFormatException();
        n = n - 10 + (c[i] - '0');
    }
    return negative ? -n : n;
}
π