String in java is a unique data type and it is the most common data type that is used in programs. Whatever we place in “ ”(Double quotes) is treated as a string.
Suppose we have a string “12345” and we want to convert string to int, Java provides some ways to parse string to int.
There are two ways to convert a java string to int, Let’s discuss them one by one with examples.
1. Integer.parseInt() – returns primitive data
2. Integer.valueIf() – return non primitive data
Integer.parseInt()
Java parseInt() method present in the Integer class that is used to convert string to int java. It can access by className as it is a static method of the Integer class. It throws NumberFormatException if the string cannot be converted to an int type.
public class StringToInt { public static void main(String args[]) { String s1 = "12345"; String s2 = "100"; int a = Integer.parseInt(s1); int b = Integer.parseInt(s2); int intValue = 1; System.out.println(intValue + a); System.out.println(intValue + b); } }
Output: 12346
101
NumberFormatException in Integer.parseInt()
The parseInt() method converts the string to int only if the string has numbers. If it is not in number format then it throws an exception.
public class StringToInt { public static void main(String args[]) { String s1 = "ABC12345"; try { int a = Integer.parseInt(s1); } catch(NumberFormatException e) { System.out.println("Invalid integer"); } } }
Output: Invalid integer
Integer.valueOf()
The Integer valueof() method exists in the Integer class that is used to convert a string to an Integer object. This method returns the object of the Integer class that holds an int value. It can access by className as it is a static method of the Integer class. It throws NumberFormatException if the string cannot be converted to an int type.
public class StringToInt { public static void main(String args[]) { String s1 = "12345"; String s2 = "100"; int a = Integer.valueOf(s1); int b = Integer.valueOf(s2); int intValue = 1; System.out.println(intValue + a); System.out.println(intValue + b); } }
Output: 12346
101
NumberFormatException in Integer.valueOf()
The valueOf() method converts the string to Integer only if the string has numbers. If it has an alphabet also it throws an exception.
public class StringToInt { public static void main(String args[]) { String s1 = "ABC12345"; try { int a = Integer.valueOf(s1); } catch(NumberFormatException e) { System.out.println("Invalid integer"); } } }
Output: Invalid integer
Different between parseInt() and valueOf() in java?
In Java, both Integer.parseInt()
and Integer.valueOf()
are used for converting a String to an integer value. However, there are some differences between these two methods that are important to consider when choosing which one to use in your code.
- Return Type:
parseInt()
method returns a primitiveint
value whereasvalueOf()
method returns anInteger
object. - Exception Handling:
parseInt()
method throws aNumberFormatException
if the string cannot be parsed to an integer. On the other hand,valueOf()
method returns anNumberFormatException
wrapped in anIllegalArgumentException
if the string cannot be parsed to an integer. - Caching:
valueOf()
method uses a cache to improve performance by reusing previously createdInteger
objects for small values. On the other hand,parseInt()
method does not use any caching. - Autoboxing:
valueOf()
method returns anInteger
object that can be used with autoboxing to automatically convert it to anint
value. On the other hand,parseInt()
method returns a primitiveint
value that cannot be autoboxed.
Based on the above differences, you can choose the appropriate method for your code. If you need an Integer
object, then you can use valueOf()
method, and if you need a primitive int
value, then you can use parseInt()
method. If performance is a concern and you need to convert small integer values frequently, then valueOf()
method might be a better choice due to caching. However, if you need to handle exceptions explicitly, then parseInt()
method might be a better choice as it throws an exception instead of returning null
in case of errors.