Преобразование 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.