You can use any of the following ways :
- Using Integer.parseInt(string)
- Using Integer.valueof(string)
- Using Apache commons NumberUtils.toInt(string)
- Using Apache commons NumberUtils.createInteger(string)
- Using Guava library's Ints.tryParse(string) method
- Using Integer.decode(string)
- Using new Integer(string)
Using Integer.parseInt(string)
String empId1 = "1001";
int intEmpId1 = Integer.parseInt(empId1);
System.out.println(intEmpId1);
Output :
1001
Integer.parseInt() will throw NumberFormatException in following cases:
// Alphabets in the input.
Integer.parseInt("100AB");
//Input number is greater than the Integer range.
Integer.parseInt("2147483648");
//Number with decimal
Integer.parseInt("1.1");
//empty String
Integer.parseInt("");
//Blank space
Integer.parseInt(" ");
Using Integer.valueof(string)
String empId2="2001";
Integer integerEmpId2=Integer.valueOf(empId2);
System.out.println(integerEmpId2);
Output :
2001
Using Apache commons NumberUtils.toInt(string)
String empId3 = "3001";
int intEmpId3 = NumberUtils.toInt(empId3);
System.out.println(intEmpId3);
Output :
3001
int intEmpId4 = NumberUtils.toInt(null);
System.out.println(intEmpId4);
Output :
0
int intEmpId5 = NumberUtils.toInt("1001ABC");
System.out.println(intEmpId5);
Output :
0
int intEmpId6 = NumberUtils.toInt("1001ABC", 10);
System.out.println(intEmpId6);
Output :
10
Using Apache commons NumberUtils.createInteger(string)
String empId4 = "4001";
Integer integerEmpId7 = NumberUtils.createInteger(empId4);
System.out.println(integerEmpId7);
Output :
4001
Using Guava library's Ints.tryParse(string) method
String empId5 = "5001";
Integer integerEmpId8 = Ints.tryParse(empId5);
System.out.println(integerEmpId8);
Output :
5001
Using Integer.decode(string)
String empId6 = "6001";
Integer integerEmpId9 = Integer.decode(empId6);
System.out.println(integerEmpId9);
Output :
6001
Using new Integer(string)
String empId7 = "7001";
Integer integerEmpId10 = new Integer(empId7);
System.out.println(integerEmpId10);
Output :
7001
However, remember that this Integer constructor is deprecated since Java9.
Complete Program
package com.blogspot.javasolutionsguide.stringtointexample;
import org.apache.commons.lang3.math.NumberUtils;
import com.google.common.primitives.Ints;
public class StringToInt {
public static void main(String[] args) {
String empId1 = "1001";
int intEmpId1 = Integer.parseInt(empId1);
System.out.println(intEmpId1);
String empId2 = "2001";
Integer integerEmpId2 = Integer.valueOf(empId2);
System.out.println(integerEmpId2);
String empId3 = "3001";
int intEmpId3 = NumberUtils.toInt(empId3);
System.out.println(intEmpId3);
int intEmpId4 = NumberUtils.toInt(null);
System.out.println(intEmpId4);
int intEmpId5 = NumberUtils.toInt("1001ABC");
System.out.println(intEmpId5);
int intEmpId6 = NumberUtils.toInt("1001ABC", 10);
System.out.println(intEmpId6);
String empId4 = "4001";
Integer integerEmpId7 = NumberUtils.createInteger(empId4);
System.out.println(integerEmpId7);
String empId5 = "5001";
Integer integerEmpId8 = Ints.tryParse(empId5);
System.out.println(integerEmpId8);
String empId6 = "6001";
Integer integerEmpId9 = Integer.decode(empId6);
System.out.println(integerEmpId9);
String empId7 = "7001";
Integer integerEmpId10 = new Integer(empId7);
System.out.println(integerEmpId10);
// Alphabets in the input.
Integer.parseInt("100AB");
//Input number is greater than the Integer range.
Integer.parseInt("2147483648");
//Number with decimal
Integer.parseInt("1.1");
//empty String
Integer.parseInt("");
//Blank space
Integer.parseInt(" ");
}
}
Dependencies used :
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0.1</version>
</dependency>
So, in this tutorial, we saw
- How we can convert String to int(or Integer) in Java.
- In most of the scenarios we can use Integer.parseInt() and Integer.valueOf(),if we want int or Integer
respectively from String and want to avoid dependency on third party libraries.
- NumberUtils.toInt() can be used in the scenarios ,where we don't want our program to fail due NumberFormatException.