Приблизний рівень необхідних знань: квест Java Syntax та трохи Java Core.
Наприкінці першого квесту JavaRush ми вивчаємо перетворення типів. У лекціях 10 рівня ви могли бачити, що перетворити int
на String
- дуже просто, і взагалі практично будь-який примітивний тип приводиться до String
без проблем.
int x = 5;
String text = "X=" + x;
Також ті, хто вже вивчив до 10 рівня квесту Java Syntax, знають, що неможливо привести посилання на число до посилання на рядок. То як же найкраще конвертувати рядок у примітивне ціле число? Робити це краще за допомогою методу parseInt
класу Integer
. Метод parseInt
повинен перетворити String
на int
і видає виняток NumberFormatException
, якщо рядок не може бути перетворений на тип int
.
приклад
Основний рядок, який переводить рядок у ціле число:
int i = Integer.parseInt (myString);
Якщо рядок, позначений змінною myString
, є допустимим цілим числом, наприклад «1», «200», Java спокійно перетворює їх у примітивний тип даних int
. Якщо з якоїсь причини це не вдається, подібна дія може викликати виняток NumberFormatException
, тому щоб програма працювала коректно для будь-якого рядка, нам потрібно трохи більше коду. Програма, яка демонструє метод перетворення Java String
на int
, управління для можливого NumberFormatException
:
public class JavaStringToIntExample
{
public static void main (String[] args)
{
String s = "100";
try
{
int i = Integer.parseInt(s.trim());
System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
Обговорення
Коли ви вивчите приклад вище, ви побачите, що метод Integer.parseInt (s.trim ())
використовується для перетворення рядка s
в ціле число i
і відбувається це в наступному рядку коду:
int i = Integer.parseInt (s.trim ())
Але іноді перевести рядок у число просто так не вийде. У прикладі такий рядок — ім'я fred. Можна говорити про коди, в яких літери записуються в комп'ютері, але, формально кажучи, fred ніяке не число, і краще залишити його рядком. Наша програма організована так, що при спробі перетворення "фреда" в число процес Integer parseInt
викличе виняток NumberFormatException
, який ви повинні обробляти в блоці try / catch
. В цьому випадку вам не обов'язково використовувати метод trim ()
класу String
, але в реальному програмуванні ви повинні його використовувати. Тож ми його вам продемонстрували. Якщо вже піднялася така тема, ось вам кілька «хінтів» на тему про класи String
і Integer
:
Integer.toString (int i)
використовується для перетворення int
в рядки Java.
- Якщо ви хочете перетворити об'єкт
String
на об'єкт Integer
(а не примітивний клас int
), використовуйте метод valueOf ()
для класу Integer
замість методу parseInt ()
.
- Якщо вам потрібно перетворити рядки на додаткові примітивні поля Java, використовуйте такі методи, як
Long.parseLong ()
і подібні.
Автор відповіді: Еліс Вотсон
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ