Java String в Int – Как превратить строку в целое число

java string v int – kak prevratit stroku v czeloe

Строчные объекты представлены в виде строки символов.

Если вы работали в Java Swing, он имеет такие компоненты как JTextField и JTextArea, которые мы используем для получения информации из графического интерфейса. Он принимает наше введение как строку.

Если мы хотим создать простой калькулятор с помощью Swing, нам нужно выяснить, как превратить строчку в целое число. Это приводит нас к вопросу – как мы можем превратить строчку в целое число?

В Java мы можем использовать Integer.valueOf() и Integer.parseInt() для превращения строки в целое число.

1. Используйте Integer.parseInt() для преобразования строки в целое число

Этот метод возвращает строку как a примитивный тип int. Если строка не содержит действительное целое число, она создает исключение NumberFormatException.

Итак, каждый раз, когда мы превращаем строку в int, нам нужно позаботиться об этом исключении, поместив код внутри блока try-catch.

Давайте рассмотрим пример преобразования строки в int с помощью Integer.parseInt():

        String str = "25";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number); // output = 25
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Давайте попробуем сломать этот код, введя недействительное целое число:

     	String str = "25T";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number);
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Как вы можете видеть в коде выше, мы попытались конвертировать 25T к целому числу. Это недействительное введение. Поэтому он обязан вызвать NumberFormatException.

Вот результат приведенного выше кода:

java.lang.NumberFormatException: For input string: "25T"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at OOP.StringTest.main(StringTest.java:51)

Далее мы рассмотрим, как превратить строку в целое число с помощью Integer.valueOf() метод.

2. Используйте Integer.valueOf() для преобразования строки в целое число

Этот метод возвращает строку как целочисленный объект. Если вы посмотрите на документацию Java, Integer.valueOf() возвращает целый объект, эквивалентный a new Integer(Integer.parseInt(s)).

Мы поместим наш код внутри блока try-catch при использовании этого метода. Давайте рассмотрим пример с использованием Integer.valueOf() метод:

        String str = "25";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); // output = 25
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Теперь давайте попробуем сломать приведенный выше код, введя недействительное целое число:

        String str = "25TA";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); 
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Подобно предыдущему примеру, приведенный выше код создаст исключение.

Вот результат приведенного выше кода:

java.lang.NumberFormatException: For input string: "25TA"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.valueOf(Integer.java:766)
	at OOP.StringTest.main(StringTest.java:42)

Мы также можем создать метод, чтобы проверить, передана строка числовой или нет, прежде чем использовать вышеупомянутые методы.

Я создал простой метод для проверки, передана строка числовой или нет.

public class StringTest {
    public static void main(String[] args) {
        String str = "25";
        String str1 = "25.06";
        System.out.println(isNumeric(str));
        System.out.println(isNumeric(str1));
    }

    private static boolean isNumeric(String str){
        return str != null && str.matches("[0-9.]+");
    }
}

Выход:

true
true

The isNumeric() метод принимает строчку как аргумент. Сначала он проверяет, так ли это null или нет. После этого используем matches() метод, чтобы проверить, содержит ли он цифры от 0 до 9 и символ точки.

Это простой способ проверить числовые значения. Вы можете написать или искать в Google более регулярные выражения для записи чисел в зависимости от вашего варианта использования.

Рекомендуется проверить, передана строка числовой или нет, прежде чем пытаться превратить ее в целое число.

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

Опубликовать изображение от 🇸🇮 Janko Ferlič на Unsplash

Вы можете связаться со мной на Medium.

Счастливого кодирования!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *