JavaRush /Java блог /Random UA /Питання-відповідь: як у Java правильно конвертувати Strin...

Питання-відповідь: як у Java правильно конвертувати String в int?

Стаття з групи Random UA
Приблизний рівень необхідних знань: квест Java Syntax та трохи Java Core.
Питання-відповідь: як у Java правильно конвертувати String в int?  - 1
Наприкінці першого квесту 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 = "fred"; // Використовуйте це, якщо вам потрібно протестувати // Виняток нижче
String s = "100";

    try
    {
      // саме тут String перетворюється на int
      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 ()і подібні.
Автор відповіді: Еліс Вотсон
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ