How to Convert String to Int in Java

I think you will agree with me when I say:
Converting String to int in Java is a REALLY one of the most used operations.
I’ll show 10 methods of how to change String to int with descriptions and examples.
How to Convert a String to an Int in Java Methods Overview
- If you need to parse String to primitive int – use Integer.parseInt
- If you are sure that result is always positive and you should convert String to primitive int – use Integer.parseUnsignedInt
- If you need to convert String to Integer object – use Integer.valueOf
- If you have String in special format (“
0x
“, “0X
“, “#
“) – use Integer.decode - If you need to turn a string into an int and specify default value in case of NumberFormatException – use NumberUtils.toInt from apache.commons.lang
NOTE: It’s impossible to cast String object to primitive int or to Integer object. This code won’t compile. You should use methods described here to parse a string to int.
Integer.parseInt(s)
Converts a String value as a signed primitive int.
Method signature:
1 | public static int parseInt(String s) throws NumberFormatException |
Example:
1 2 | int i = Integer.parseInt("100"); System.out.println(i); |
Output:
1 | 100 |
Integer.parseInt(s, radix)
Parses a string argument as a signed primitive int in the radix specified by the second argument.
Method signature:
1 | public static int parseInt(String s, int radix) throws NumberFormatException |
Examples:
1 2 3 4 5 6 7 8 9 10 11 12 | System.out.println(Integer.parseInt("0", 10)); System.out.println(Integer.parseInt("473", 10)); System.out.println(Integer.parseInt("+42", 10)); System.out.println(Integer.parseInt("-0", 10)); System.out.println(Integer.parseInt("-FF", 16)); System.out.println(Integer.parseInt("1100110", 2)); System.out.println(Integer.parseInt("2147483647", 10)); System.out.println(Integer.parseInt("-2147483648", 10)); System.out.println(Integer.parseInt("2147483648", 10)); System.out.println(Integer.parseInt("99", 8)) System.out.println(Integer.parseInt("Kona", 10)); System.out.println(Integer.parseInt("Kona", 27)); |
Output:
1 2 3 4 5 6 7 8 9 10 11 12 | 0 473 42 0 -255 102 2147483647 -2147483648 throws a NumberFormatException throws a NumberFormatException throws a NumberFormatException 411787 |
Since: Java 8
Integer.parseInt(s, beginIndex, endIndex, radix)
Turning a CharSequence value into a signed primitive int in the radix specified by the second argument from beginIndex to endIndex.
Note: The method has no protection against CharSequence mutation during parsing.
Method signature:
1 | public static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException |
Examples:
1 2 3 4 5 6 7 8 9 10 | String cssColor = "#4dba16"; int red = Integer.parseInt(cssColor, 1, 3, 16); int green = Integer.parseInt(cssColor, 3, 5, 16); int blue = Integer.parseInt(cssColor, 5, 7, 16); System.out.println(red); System.out.println(green); System.out.println(blue); int amount = Integer.parseInt("I have 2000$ on my bank account", 7, 11, 10); System.out.println(amount); |
Output:
1 2 3 4 | 77 186 22 2000 |
Since: Java 9
Integer.parseUnsignedInt(s)
Converts a String value to an unsigned primitive int.
Method signature:
1 | public static int Integer.parseUnsignedInt(String s) throws NumberFormatException |
Examples:
1 2 | int i = Integer.parseUnsignedInt("2017"); System.out.println(i); |
Integer.parseUnsignedInt(s, radix)
Parses a String argument as an unsigned primitive int in the radix specified by the second argument.
Method signature:
1 | public static int parseUnsignedInt(String s, int radix) throws NumberFormatException |
Examples:
1 2 3 4 5 6 7 8 | int iDecimal = Integer.parseUnsignedInt("75", 10); // base 10 decimal System.out.println("iDecimal = " + iDecimal); int iOctal = Integer.parseUnsignedInt("011", 8); // base 8 octal System.out.println("iOctal = " + iOctal); int iHexadecimal = Integer.parseUnsignedInt("aC", 16); // base 16 hexadecimal System.out.println("iHexadecimal = " + iHexadecimal); |
Since: Java 8
Integer.parseUnsignedInt(s, beginIndex, endIndex, radix)
Turning a CharSequence value into an unsigned primitive int in the radix specified by the second argument from beginIndex to endIndex.
Method signature:
1 | public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException |
Examples:
1 2 3 4 5 6 7 8 | int result1 = Integer.parseInt("010010000100001001000100", 0, 7, 2); System.out.println(result1); int result2 = Integer.parseInt("-6B4A", 0, 3, 16); System.out.println(result2); int result2 = Integer.parseUnsignedInt("6B4A", 0, 3, 16); System.out.println(result2); |
Output:
1 2 3 | 36 -107 1716 |
Since: Java 9
Integer.valueOf(s)
Converts a String to an Integer object.
Method signature:
1 | public static Integer.valueOf(String s) throws NumberFormatException |
Example:
1 2 | Integer i = Integer.valueOf("100"); System.out.println(i); |
Output:
1 | 100 |
Integer.valueOf(s, radix)
Parses a String as an Integer object in the radix specified by the second argument.
Method signature:
1 | public static Integer.valueOf(String s, int radix) throws NumberFormatException |
Examples:
1 2 3 4 5 6 7 8 | int binary = Integer.valueOf("11111111", 2); System.out.println(binary); int octal = Integer.valueOf("377", 8); System.out.println(octal); int hexadecimal = Integer.valueOf("ff", 16); System.out.println(hexadecimal); |
Output:
1 2 3 | 255 255 255 |
Since: Java 8
Integer.decode(s)
Decodes a String into an Integer. Accepts decimal, hexadecimal, and octal numbers in the following format:
Sign | Opt | Name | Examples |
± | DecimalNumeral | 555, -475 | |
± | 0X | HexDigits | 0XA, -0X12A |
± | 0x | HexDigits | 0xA, -0x12A |
± | # | HexDigits | -#A, #123 |
± | 0 | OctalDigits | 010, -010 |
Method signature:
1 | public static Integer decode(String nm) throws NumberFormatException |
Examples:
1 2 3 4 | System.out.println("octal numbers: " + Integer.decode("010")); System.out.println("hexadecimal numbers: " + Integer.decode("0XA")); System.out.println("minus hexadecimal numbers: " + Integer.decode("-0XA")); System.out.println("minus hexadecimal numbers: " + Integer.decode("-#A")); |
Output:
1 2 3 4 | octal numbers: 8 hexadecimal numbers: 10 minus hexadecimal numbers: -10 minus hexadecimal numbers: -10 |
NumberUtils.toInt(s)
NumberUtils class contains some useful methods to parse strings. To Include it to the project you should add maven dependency:
1 2 3 4 5 | <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> |
and import org.apache.commons.lang3.math.NumberUtils
to your class.
Method signature:
1 | public static int NumberUtils.toInts(String s) |
Example:
1 2 | int i = NumberUtils.toInt("100"); System.out.println(i); |
Output:
1 | 100 |
Implementation with a default value as a second argument would be useful if you’re not sure what’s inside of the input String and you want to provide a fallback value.
Method signature:
1 | public static int NumberUtils.toInts(String s, int defaultValue) |
Example:
If the string is null, the default value is returned.
1 2 3 4 | System.out.println(NumberUtils.toInt("100")); System.out.println(NumberUtils.toInt(null, 1)); System.out.println(NumberUtils.toInt("", 2)); System.out.println(NumberUtils.toInt("qwerty", 3)); |
Output:
1 2 3 4 | 100 1 2 3 |
Any questions? Please, ask me.