Probably one of the most used operations while writing code is the conversion of a string to an integer or vice versa. But you have to be careful. If the string contains characters other than digits, you might get an exception.

There are multiple ways available to do this simple conversion in Java. Let's go through these methods one by one. If you want to convert an integer to a string, take a look at this article.

Integer.parseInt() Method

The parseInt() static method from Integer class converts a string into a primitive integer (int). It takes two arguments. The first argument is the string to convert. The second optional argument is the base number called radix:

String str = "85";
int num = Integer.parseInt(str);
System.out.println(num); // 85

// with radix 16
String strBase16 = "100";
int num2 = Integer.parseInt(strBase16, 16);
System.out.println(num2); // 256

If the string contains non-digit characters even a dot (.), the parseInt() method throws a NumberFormatException:

String str = "19.49";
int price = Integer.parseInt(str);

Here is the output for the above conversion:

Exception in thread "main" java.lang.NumberFormatException: For input string: "19.49"
    at java.lang.NumberFormatException.forInputString(
    at java.lang.Integer.parseInt(
    at java.lang.Integer.parseInt(

Integer.valueOf() Method

The valueOf() static method also converts a string into an integer. But it, unlike the parseInt() method, returns an Integer object instead of a primitive int value. The NumberFormatException is thrown is the string is not a parsable integer:

Integer num1 = Integer.valueOf("19");
System.out.println(num1); // 19

Integer num2 = Integer.valueOf("20", 16);
System.out.println(num2); // 32

Integer num3 = Integer.valueOf("49%"); // NumberFormatException

Integer.decode() Method

The decode() static method accepts one parameter — a string and decodes it into an Integer object. If the string is not parsable, a NumberFormatException is thrown:

Integer num1 = Integer.decode("489");
System.out.println(num1); // 489

Integer num2 = Integer.decode("41");
System.out.println(num2); // 41

Integer num3 = Integer.decode("4MB"); // NumberFormatException


Although not very popular, the Scanner class can also be used to convert a string into an integer. The nextInt() method scans the next token of the input as a primitive int:

System.out.println(new Scanner("124").nextInt()); // 124
System.out.println(new Scanner("189").nextInt()); // 189


The Integer class methods (parseInt(), valueOf(), decode()) throw a NumberFormatException if the string is not a parsable integer. You should use try-catch block to handle this exception:

try {
    String str = "9.49";
    int price = Integer.parseInt(str);
} catch (NumberFormatException ex) {

Read Next: Data Type Conversions in Java to learn about other data type conversions like string to date, a string to float, a string to double, and more.

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.