Java String to int conversion can be done using the Integer wrapper class. There are two static methods for this purpose – parseInt() and valueOf().
Table of Contents
Java String to int Conversion Methods
The Integer class provides 5 overloaded methods for the string to int conversion.
- parseInt(String s): parses the string as a signed decimal value. The string should have only decimal digits. The first character can be ASCII minus sign (-) or plus sign (+).
- parseInt(String s, int radix): parses the given string as the signed integer in the radix.
- parseInt(CharSequence s, int beginIndex, int endIndex, int radix): The method is useful in parsing a substring to an integer. If the index values are invalid, IndexOutOfBoundsException is thrown. If the CharSequence is null, NullPointerException is thrown.
- valueOf(String s): This method returns an Integer object. The string is parsed as a signed decimal value. It calls
parseInt
(s, 10)
internally. - valueOf(String s, int radix): internally calls the parseInt(s, radix) method and returns the Integer object.
Important Points for String to int Parsing
- All the parseInt() and valueOf() methods throw NumberFormatException if the string is not parsable.
- The radix value should be in the supported range i.e. from Character.MIN_RADIX (2) to Character.MAX_RADIX (36), otherwise NumberFormatException is thrown.
- The parseInt() methods return int primitive data type.
- The valueOf() methods return an Integer object.
- The valueOf() methods internally calls parseInt() methods.
- Since Java supports autoboxing, we can use int and Integer in our program interchangeably. So we can use either parseInt() or valueOf() method to convert a string to integer.
- The parseInt() method to parse substring was added to String class in Java 9 release.
- The string should not contain the prefix used to denote an integer in the different radix. For example, “FF” is valid but “0xFF” is not a valid string for the conversion.
- The valueOf() methods are present because it’s present in every wrapper class and String to convert other data types to this object. Recommended Read: Java String valueOf() method.
Java String to integer Examples
Let’s look at some examples for parsing a string to an integer using the parseInt() and valueOf() methods.
1. parseInt(String s)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | jshell> Integer.parseInt( "123" ); $ 69 ==> 123 jshell> Integer.parseInt( "-123" ); $ 70 ==> - 123 jshell> Integer.parseInt( "+123" ); $ 71 ==> 123 jshell> Integer.parseInt( "-0" ); $ 72 ==> 0 jshell> Integer.parseInt( "+0" ); $ 73 ==> 0 |
2. parseInt(String s, int radix)
1 2 3 4 5 | jshell> Integer.parseInt( "FF" , 16 ); $ 74 ==> 255 jshell> Integer.parseInt( "1111" , 2 ); $ 75 ==> 15 |
3. parseInt(CharSequence s, int beginIndex, int endIndex, int radix)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | jshell> String line = "Welcome 2019" ; line ==> "Welcome 2019" jshell> Integer.parseInt(line, 8 , 12 , 10 ) $ 77 ==> 2019 jshell> String lineMixed = "5 in binary is 101" ; lineMixed ==> "5 in binary is 101" jshell> Integer.parseInt(lineMixed, 0 , 1 , 10 ) $ 79 ==> 5 jshell> Integer.parseInt(lineMixed, 15 , 18 , 2 ) $ 80 ==> 5 |

4. valueOf(String s)
1 2 3 4 5 | jshell> Integer io = Integer.valueOf( 123 ); io ==> 123 jshell> int i = Integer.valueOf( 123 ); i ==> 123 |
The valueOf() method returns Integer object. But, we can assign it to int also because Java supports autoboxing.
5. valueOf(String s, int radix)
1 2 3 4 5 6 7 8 | jshell> Integer.valueOf( "F12" , 16 ) $ 84 ==> 3858 jshell> int i = Integer.valueOf( "F12" , 16 ) i ==> 3858 jshell> int i = Integer.valueOf( "077" , 8 ) i ==> 63 |
6. NumberFormatException Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | jshell> Integer.parseInt( "abc" ); | Exception java.lang.NumberFormatException: For input string: "abc" | at NumberFormatException.forInputString (NumberFormatException.java: 68 ) | at Integer.parseInt (Integer.java: 658 ) | at Integer.parseInt (Integer.java: 776 ) | at (# 87 : 1 ) jshell> Integer.parseInt( "FF" , 8 ); | Exception java.lang.NumberFormatException: For input string: "FF" under radix 8 | at NumberFormatException.forInputString (NumberFormatException.java: 68 ) | at Integer.parseInt (Integer.java: 658 ) | at (# 88 : 1 ) jshell> |
7. NullPointerException when parsing substring
1 2 3 4 5 6 7 | jshell> Integer.parseInt( null , 1 , 2 , 10 ); | Exception java.lang.NullPointerException | at Objects.requireNonNull (Objects.java: 221 ) | at Integer.parseInt (Integer.java: 701 ) | at (# 89 : 1 ) jshell> |
8. IndexOutOfBoundsException when parsing substring
1 2 3 4 5 6 | jshell> Integer.parseInt( "Hello 2019" , 1 , 100 , 10 ); | Exception java.lang.IndexOutOfBoundsException | at Integer.parseInt (Integer.java: 704 ) | at (# 90 : 1 ) jshell> |
9. NumberFormatException when radix is out of range
1 2 3 4 5 6 | jshell> Integer.parseInt( "FF" , 50 ); | Exception java.lang.NumberFormatException: radix 50 greater than Character.MAX_RADIX | at Integer.parseInt (Integer.java: 629 ) | at (# 91 : 1 ) jshell> |
10. Java String to int Removing Leading Zeroes
If the string is prefixed with zeroes, they are removed when converted to int.
1 2 3 4 5 6 7 8 9 10 11 | jshell> Integer.parseInt( "00077" ); $ 95 ==> 77 jshell> Integer.parseInt( "00077" , 16 ); $ 96 ==> 119 jshell> Integer.parseInt( "00077" , 12 ); $ 97 ==> 91 jshell> Integer.parseInt( "00077" , 8 ); $ 98 ==> 63 |
Conclusion
Java String to int conversion is very easy. We can use either parseInt() or valueOf() method. Java 9 added another utility method to parse substring to an integer.