String to int in Java
Last Updated :
22 Dec, 2023
In Java, while operating upon strings, there are times when we need to convert a number represented as a string into an integer type. We usually do this because we can operate with a wide flexible set of operations over strings. The method generally used to convert String to Integer in Java is parseInt() of the String class.
In this article, we will see how to convert a String to int in Java.
Program to Convert Java String to int
Let us take an example straight away to get used to the working parseInt() method :
Java
public class GFG {
public static void main(String args[])
{
int decimalExample = Integer.parseInt( "20" );
int signedPositiveExample = Integer.parseInt( "+20" );
int signedNegativeExample = Integer.parseInt( "-20" );
int radixExample = Integer.parseInt( "20" , 16 );
int stringExample = Integer.parseInt( "geeks" , 29 );
System.out.println(decimalExample);
System.out.println(signedPositiveExample);
System.out.println(signedNegativeExample);
System.out.println(radixExample);
System.out.println(stringExample);
}
}
|
Output
20
20
-20
32
11670324
parseInt() Method in Java
There are two variants of this method:
- parseInt(String s): This function parses the string argument as a signed decimal integer.
- parseInt(String s, int radix): This function parses the string argument as a signed integer in the radix specified by the second argument.
Syntax of parseInt
public static int parseInt(String str);
public static int parseInt(String str, int radix);
Parameters
- str: String that needs to be converted to an integer.
- radix: is used while the string is being parsed.
Return Type
- Both methods convert the string into its integer equivalent. The only difference is that of the parameter radix. The first method can be considered with radix = 10 (Decimal).
Exception Thrown
Remember certain key points associated with both variants:
- The string can be null or of zero-length
- Value represented by the string is not a value of type int
- Specifically for the parseInt(String s, int radix) variant of the function:Â
- The second argument radix is either smaller than Character.MIN_RADIX or larger than Character.MAX_RADIX
- Any character of the string is not a digit of the specified radix, except that the first character may be a minus sign ‘-‘ (‘\u002D’) or plus sign ‘+’ (‘\u002B’) provided that the string is longer than length 1
- If your String has leading zeroes, the parseInt() method will ignore them.Â
Cases of parseInt() Method
Let’s take a random code snippet further understand the illustrations better.
Case 1: parseInt(“20”, 16)
returns 32 , (2)*16^1 + (0)*16^0 = 32
Case 2: parseInt(“2147483648”, 10)
throws a NumberFormatException
Case 3: parseInt(“99”, 8)
throws a NumberFormatException
Reason: 9 is not an accepted digit of octal number system
Case 4: parseInt(“geeks”, 28)
throws a NumberFormatException
Case 5: parseInt(“geeks”, 29)
returns 11670324, Reason: Number system with base 29 can have digits 0-9 followed by characters a,b,c… upto s
Case 6: parseInt(“geeksforgeeks”, 29)
throws a NumberFormatException as the Reason: result is not an integer.
Number Format Exceptions of parseInt() Method
Exceptions caused by parseInt() Method mentioned below:
Java
public class GFG {
public static void main(String args[])
{
String invalidArguments = "" ;
int emptyString
= Integer.parseInt(invalidArguments);
int outOfRangeOfInteger
= Integer.parseInt( "geeksforgeeks" , 29 );
int domainOfNumberSystem
= Integer.parseInt( "geeks" , 28 );
System.out.println(emptyString);
System.out.println(outOfRangeOfInteger);
System.out.println(domainOfNumberSystem);
}
}
|
Output
Similarly, we can convert the string to any other primitive data type:
- parseLong(): parses the string to Long
- parseDouble(): parses the string to double If we want to convert the string to an integer without using parseInt(), we can use valueOf() method. It also has two variants similar to parseInt()
- Difference between parseInt() and valueOf():Â parseInt() parses the string and returns the primitive integer type. However, valueOf() returns an Integer Object.
Note: valueOf() uses parseInt() internally to convert to integer.Â
Another Approach for Converting a String to Integer
Apart from parseInt() Method in Java there is another method for conversion of String to Integer. Below is the implementation of valueOf() method that is
valueOf() Method
The Integer.valueOf() method converts a String into an Integer object. Let us understand this by an example.
Below is the implementation of the above method:
Java
public class GFG {
public static void main(String args[])
{
int decimalExample = Integer.valueOf( "20" );
int signedPositiveExample = Integer.valueOf( "+20" );
int signedNegativeExample = Integer.valueOf( "-20" );
int radixExample = Integer.valueOf( "20" , 16 );
int stringExample = Integer.valueOf( "geeks" , 29 );
System.out.println(decimalExample);
System.out.println(signedPositiveExample);
System.out.println(signedNegativeExample);
System.out.println(radixExample);
System.out.println(stringExample);
}
}
|
Output
20
20
-20
32
11670324
Share your thoughts in the comments
Please Login to comment...