Преобразование типов в Java

  • 17 янв. 2014 г.
  • 1138 Слова
Приведение типов
Иногда возникают ситуации, когда у вас есть величина какого-то определенного типа, а вам нужно ее присвоить переменной другого типа. Для некоторых типов это можно проделать и без приведения типа, в таких случаях говорят об автоматическом преобразовании типов.
В Java автоматическое преобразование возможно только в том случае, когда точности представления чиселпеременной-приемника достаточно для хранения исходного значения. Такое преобразование происходит, например, при занесении литеральной константы или значения переменной типа byte или short в переменную типа int. Это называется расширением (widening) или повышением (promotion), поскольку тип меньшей разрядности расширяется (повышается) до большего совместимого типа. Размера типа int всегда достаточно для хранения чисел издиапазона, допустимого для типа byte, поэтому в подобных ситуациях оператора явного приведения типа не требуется.
Обратное в большинстве случаев неверно, поэтому для занесения значения типа int в переменную типа byte необходимо использовать оператор приведения типа. Эту процедуру иногда называют сужением (narrowing), поскольку вы явно сообщаете транслятору, что величину необходимо преобразовать, чтобыона уместилась в переменную нужного вам типа. Для приведения величины к определенному типу перед ней нужно указать этот тип, заключенный в круглые скобки.
Java преобразование строки в число (STRING to NUMBER)
В следующих примерах будет использована конструкция try-catch. Это необходимо для обработки ошибки, в случае, если строка содержит иные символы кроме чисел или  число, выходящее за рамкидиапазона допустимых значений определенного типа.
Например, строка «somenumber» не может быть переведена в тип int или в любой другой числовой тип. В это случае, при компеляции возникнет ошибка. Чтобы этого избежать, следует обезопаситься с помощью конструкции try-catch.
String to byte
C использованием конструктора
    try {
        Byte b1 = new Byte("10");
        System.out.println(b1);    } catch (NumberFormatException e) {
        System.err.println("Неверный формат строки!");
    }
С использованием метода valueOf класса Byte
String str1 = "111";
    try {
        Byte b2 = Byte.valueOf(str1);
        System.out.println(b2);
    } catch (NumberFormatException e) {
        System.err.println("Неверный формат строки!");
    }
С использованием метода parseByteкласса Byte
byte b = 0;
    String str2 = "100";
    try {
        b = Byte.parseByte(str2);
        System.out.println(b);
    } catch (NumberFormatException e) {
        System.err.println("Неверный формат строки!");
    }
Перевод строки в массив байтов
String str3 = "20150";
    byte[] b3 = str3.getBytes();
    System.out.println(b3);
String to short
C использованием конструктора    try {
        Short s1 = new Short("68");
        System.out.println(s1);
    }catch (NumberFormatException e) {  
        System.err.println("Неверный формат строки!");  
    }   
C использованием метода valueOf класса Short
   String str1 = "59";
    try {
        Short s2 = Short.valueOf(str1);
        System.out.println(s2);    
    }catch (NumberFormatException e) {          System.err.println("Неверный формат строки!");  
    }  
C использованием метода parseShort класса Short
    short s3 = 0;  
    String str2 = "100";  
    try {  
        s3 = Short.parseShort(str2);  
        System.out.println(s3);  
    } catch (NumberFormatException e) {  
        System.err.println("Неверный формат строки!");  
    }                  
String to int
Cиспользованием конструктора
    try {
        Integer i1 = new Integer("20349");
        System.out.println(i1);
    }catch (NumberFormatException e) {  
        System.err.println("Неверный формат строки!");  
    }   
C использованием метода valueOf класса Integer
   String str1 = "1451";
    try {
        Integer i2 = Integer.valueOf(str1);
      ...