Java String to Int - Як перетворити рядок у ціле число

Рядкові об'єкти представлені у вигляді рядка символів.

Якщо ви працювали в Java Swing, він має такі компоненти, як JTextField та JTextArea, які ми використовуємо для отримання вхідних даних із графічного інтерфейсу користувача. Він приймає наш вхід як рядок.

Якщо ми хочемо зробити простий калькулятор за допомогою Swing, нам потрібно з’ясувати, як перетворити рядок у ціле число. Це підводить нас до питання - як ми можемо перетворити рядок у ціле число?

У Java ми можемо використовувати Integer.valueOf()і Integer.parseInt()для перетворення рядка в ціле число.

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

Цей метод повертає рядок як примітивний тип 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

isNumeric()Метод приймає рядок в якості аргументу. Спочатку він перевіряє, чи є це nullчи ні. Після цього ми використовуємо matches()метод, щоб перевірити, чи містить він цифри від 0 до 9 та символ крапки.

Це простий спосіб перевірки числових значень. Ви можете писати або шукати в Google більш досконалі регулярні вирази, щоб зафіксувати цифри, залежно від вашого випадку використання.

Найкращою практикою є перевірити, чи переданий рядок є числовим чи ні, перед спробою перетворити його на ціле число.

Дякую за читання.

Опублікуйте зображення від ko Janko Ferlič на Unsplash

Ви можете зв’язатися зі мною на Medium.

Щасливого кодування!