Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как преобразовать строку в число и обратно

Короткий ответ

Строку в int превращает Integer.parseInt(), число в строку — String.valueOf():

void main() {
    int number = Integer.parseInt("42");
    String text = String.valueOf(number);
 
    IO.println(number + 1);
    IO.println(text + 1);
}

Результат:

43
421

Другие числовые типы

У каждого числового типа есть свой метод parseXxx():

void main() {
    long big = Long.parseLong("9000000000");
    double price = Double.parseDouble("19.99");
 
    IO.println(big);
    IO.println(price * 2);
}

Результат:

9000000000
39.98

Объект вместо примитива

Integer.valueOf() возвращает объект Integer — он нужен, например, чтобы положить число в List<Integer>:

void main() {
    List<Integer> numbers = new ArrayList<>();
    numbers.add(Integer.valueOf("7"));
    numbers.add(Integer.valueOf("8"));
 
    IO.println(numbers);
}

Результат:

[7, 8]

Число в строку

Кроме String.valueOf() подходят Integer.toString() и сложение с пустой строкой. Для форматирования используйте String.format():

void main() {
    int count = 5;
 
    String a = Integer.toString(count);
    String b = "" + count;
    String c = String.format("%03d", count);
 
    IO.println(a + " " + b + " " + c);
}

Результат:

5 5 005

Неверный ввод

Если строка не является числом, parseInt() выбрасывает NumberFormatException. Перехватите его, чтобы подставить значение по умолчанию:

int toInt(String text, int fallback) {
    try {
        return Integer.parseInt(text.strip());
    } catch (NumberFormatException e) {
        return fallback;
    }
}
 
void main() {
    IO.println(toInt(" 15 ", 0));
    IO.println(toInt("abc", 0));
}

Результат:

15
0

Частая ошибка

parseInt() не убирает пробелы и не понимает дробную часть — такие строки вызывают исключение:

void main() {
    int value = Integer.parseInt("3.5");
    IO.println(value);
}

Результат:

Exception in thread "main" java.lang.NumberFormatException: For input string: "3.5"

Для дробных чисел используйте Double.parseDouble(), а пробелы убирайте через strip().

Функции из этого ответа

  • Integer.parseInt() — Превращает строку с целым числом в int.
  • Integer.valueOf() — Возвращает объект-обёртку Integer для строки или числа int.
  • String.valueOf() — Превращает значение любого типа в строку.
  • Double.parseDouble() — Превращает строку с дробным числом в double.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.