Обычно в графический интерфейс пользователя, будут текстовые поля, ожидающие ввода пользователем числового значения. Это числовое значение закончится в строка объект, который действительно не помогает вашей программе, если вы хотите сделать некоторую арифметику. К счастью, существуют классы-обертки, которые предоставляют методы для преобразования этих значений String в числа, а класс String имеет метод для их обратного преобразования.
Классы Обертки
примитивные типы данных которые имеют дело с числами (то есть, byte, int, double, float, long и short), все имеют классовые эквиваленты. Эти классы известны как классы-обертки, так как они принимают примитивный тип данных и окружают его функциональностью класса. Например, класс Double будет иметь двойное значение в качестве своих данных и предоставлять методы для манипулирования этим значением.
Все эти классы-обертки имеют метод с именем valueOf. Этот метод принимает String в качестве аргумента и возвращает экземпляр класса-оболочки. Например, допустим, у нас есть строка со значением десять:
Номер строки = "10";
Наличие этого числа в качестве строки бесполезно для нас, поэтому мы используем класс Integer для преобразования его в объект Integer:
Целое число convertNumber = Integer.valueOf (число);
Теперь число можно использовать как число, а не как строку:
convertNumber = convertNumber + 20;
Вы также можете сделать преобразование прямо в примитивный тип данных:
int convertNumber = Integer.valueOf (number) .intValue ();
Для других примитивных типов данных вы просто вставляете правильный класс оболочки - Byte, Integer, Double, Float, Long Short.
Замечания: Вы должны убедиться, что строка может быть проанализирована в соответствующий тип данных. Если это невозможно, вы получите ошибку во время выполнения. Например, пытаясь преобразовать «десять» в целое число:
Номер строки = "десять";
int convertNumber = Integer.valueOf (number) .intValue ();
выдаст NumberFormatException, поскольку компилятор не имеет представления, что «десять» должно быть 10.
Более того, такая же ошибка произойдет, если вы забудете, что «int» может содержать только целые числа:
Номер строки = "10,5";
int convertNumber = Integer.valueOf (number) .intValue ();
Компилятор не будет усекать число, он просто будет думать, что он не вписывается в int и что пришло время выбросить NumberFormatException.
Преобразование чисел в строки
Для преобразования числа в строку следует тот же тип шаблона, что и в классе String также есть метод valueOf. Он может принимать любое из примитивных чисел типа данных в качестве аргумента и создавать строку:
int numberTwenty = 20;
String convert = String.valueOf (numberTwenty);
который помещает «20» в качестве строкового значения для преобразованного.
или вы можете использовать метод toString любого из классов-оболочек:
String convert = Integer.toString (numberTwenty);
Метод toString является общим для всех типов объектов - в большинстве случаев это просто описание объекта. Для классов-оболочек это описание является фактическим значением, которое они содержат. В этом направлении преобразование является более надежным. Если класс Double должен был использоваться вместо Integer:
String convert = Double.toString (numberTwenty);
результат не вызовет ошибка выполнения. Преобразованная переменная будет содержать строку «20.0».
Существует также более тонкий способ преобразования чисел, когда вы конкатенация строк. Если строка должна быть построена как:
String aboutDog = "Моей собаке" + numberTwenty + "лет.";
преобразование целого числа Twenty выполняется автоматически.