Parsing and Converting

String to Number and Back

TaskMethodReturns
String → intInteger.parseInt("42")primitive int
String → IntegerInteger.valueOf("42")Integer object
number → StringString.valueOf(42) or Integer.toString(42)"42"
with radixInteger.parseInt("ff", 16)255

Handling Bad Input

Example

Text from forms, CSV files or query parameters may not be a valid number. parseInt throws NumberFormatException, so catch it.

public class Main {
    static int parseOrDefault(String text, int fallback) {
        try {
            return Integer.parseInt(text.trim());
        } catch (NumberFormatException e) {
            System.out.println("  bad number: '" + text + "'");
            return fallback;
        }
    }

    public static void main(String[] args) {
        String[] inputs = { "25", " 7 ", "12abc", "", "-3" };
        int sum = 0;
        for (String in : inputs) {
            sum += parseOrDefault(in, 0);
        }
        System.out.println("Sum = " + sum);
        System.out.println("Hex ff = " + Integer.parseInt("ff", 16));
        System.out.println("As text: " + String.valueOf(3.5) + "|" + Integer.toString(99));
    }
}

Output

  bad number: '12abc'
  bad number: ''
Sum = 29
Hex ff = 255
As text: 3.5|99