Преобразование String в int на Java — Integer.parseInt и valueOf
Считали число с клавиатуры или прочли из файла — оно пришло строкой. Чтобы выполнять с ним арифметику, превратим строку в int.
Пример 1: строка в int через parseInt()
Метод Integer.parseInt() разбирает строку и возвращает целое число.
class Main {
public static void main(String[] args) {
// create string variables
String str1 = "23";
String str2 = "4566";
// convert string to int
// using parseInt()
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
// print int values
System.out.println(num1); // 23
System.out.println(num2); // 4566
}
}
Вывод:
23
4566
Метод parseInt() читает строку посимвольно и собирает из неё целое число.
Предупреждение
Строка должна содержать только цифры. Если внутри будут буквы, parseInt() выбросит исключение NumberFormatException:
class Main {
public static void main(String[] args) {
// create a string variable
String str1 = "Programiz";
// convert string to int
// using parseInt()
int num1 = Integer.parseInt(str1);
// print int values
System.out.println(num1); // throws NumberFormatException
}
}
Пример 2: строка в int через valueOf()
Альтернатива — метод Integer.valueOf(). Он возвращает объект класса Integer, но автоматически разворачивается в примитив.
class Main {
public static void main(String[] args) {
// create string variables
String str1 = "643";
String str2 = "1312";
// convert String to int
// using valueOf()
int num1 = Integer.valueOf(str1);
int num2 = Integer.valueOf(str2);
// print int values
System.out.println(num1); // 643
System.out.println(num2); // 1312
}
}
Вывод:
643
1312
Метод valueOf() возвращает объект класса-обёртки Integer. Java сама разворачивает его в примитив int благодаря механизму unboxing.