Низовите обекти са представени като низ от символи.
Ако сте работили в 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.
Честито кодиране!