Java String to Int - Как да конвертирате низ в цяло число

Низовите обекти са представени като низ от символи.

Ако сте работили в Java Swing, той има компоненти като JTextField и JTextArea, които използваме, за да получим нашите данни от GUI. Той приема нашия вход като низ.

Ако искаме да направим прост калкулатор с помощта на 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()връща цяло число обект, който е еквивалентен на 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 за по-усъвършенствани регулярни изрази, за да уловите числа в зависимост от случая на употреба.

Най-добрата практика е да проверите дали предаденият низ е числов или не, преди да се опитате да го преобразувате в цяло число.

Благодаря ви, че четете.

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

Можете да се свържете с мен на Medium.

Честито кодиране!