1. 程式人生 > 其它 >Java-裝拆箱及 int-String型別轉換

Java-裝拆箱及 int-String型別轉換

jdk1.5之前

  • 裝箱:Integer i = new Integer(10)

jdk1.5之後

  • Integer i = 5;裝箱
  • int n = i; 拆箱
package com.shujia.wyh.day17;

/*
      需求1:求出100這個資料的二進位制,八進位制,十六進位制。
      需求2:如何使用程式碼求出int型別等基本資料型別的範圍呢?

      如果按照之前的做法,需求1我們可以按照數學邏輯一步一步計算,但是需求2,我們不知道從哪下手。
      如果說有一種辦法,可以對基本資料型別進行更多的操作,更方便的操作就好了。
      Java針對每一個基本資料型別都提供了一個對應的類給我們使用,既然是類了,就可以建立物件,呼叫類中的方法來實現需求。
      這樣的對應著每一個基本資料型別的類,稱之為包裝類。
      基本資料型別:            包裝類型別:
      byte                   Byte
      short                  Short
      int                    Integer
      long                   Long
      float                  Float
      double                 Double
      char                   Character
      boolean                Boolean

      綜上所述,每一個基本資料型別都一個對應的包裝類,上課只舉例int對應的包裝類Integer

      包裝類型別的使用場景:
        1、在今後的集合學習中會使用到(泛型)
        2、用於基本資料型別與字串之間做轉換
 */
public class PackClassDemo1 {
    public static void main(String[] args) {
        //需求1:求出100這個資料的二進位制,八進位制,十六進位制。
        //int型別對應的包裝類Integer
        //public static String toBinaryString(int i)在基數2中返回整數引數的字串表示形式為無符號整數。
        String s = Integer.toBinaryString(100);
        System.out.println("100的二進位制是:" + s);

        //public static String toOctalString(int i)在基數8中返回整數引數的字串表示形式為無符號整數。
        String s1 = Integer.toOctalString(100);
        System.out.println("100的八進位制是:" + s1);

        //public static String toHexString(int i)返回整數引數的字串表示形式,作為16位中的無符號整數。
        String s2 = Integer.toHexString(100);
        System.out.println("100的十六進位制是:" + s2);

        // 需求2:如何使用程式碼求出int型別等基本資料型別的範圍呢?
        //static int MAX_VALUE  一個持有最大值一個 int可以有2 31 -1。
        //static int MIN_VALUE 的常量保持的最小值的 int可以具有,-2 31。
        //獲取int型別的最大範圍值
        System.out.println(Integer.MAX_VALUE);

        //獲取int型別的最小範圍值
        System.out.println(Integer.MIN_VALUE);



    }
}

package com.shujia.wyh.day17;

/*
        int型別與String型別做相互轉換

        int -- String

        String -- int

 */
public class PackClassDemo2 {
    public static void main(String[] args) {
        //int -- String
        int num = 100;
        //方式1:
        String s1 = "" + num;
        System.out.println(s1);
        //方法2:(推薦第二種)
        String s2 = String.valueOf(100);
        System.out.println(s2);
        //方式3:
        //int -- Integer -- String
        Integer i = 100; //自動裝箱 將基本資料型別的資料直接賦值給對應的包裝類型別
//        System.out.println(i);
        //public String toString()返回String表示此物件Integer的價值。
        // 該值被轉換為帶符號的十進位制表示形式,並作為字串返回,就像將整數值作為toString(int)方法的引數給出。
        String s3 = i.toString();
        System.out.println(s3);

        System.out.println("===================================");
        //String -- int
        String string = "100";
        //方式1:
        //String -- Integer -- int
//        Integer decode = Integer.decode(string);
//        System.out.println(decode);
//        //public int intValue()將 Integer的值作為 int 。
//        int i1 = decode.intValue();
//        System.out.println(i1);
        //方式2:
        //String -- Integer -- int
        //Integer(String s)
        //構造一個新分配 Integer物件,表示 int由指示值 String引數。
        Integer integer = new Integer(string);
        int i2 = integer.intValue();
        System.out.println(i2);
        //方式3:(最常用的)
        //public static int parseInt(String s)將字串引數解析為帶符號的十進位制整數。
        int i1 = Integer.parseInt("100");
        System.out.println(i1);

    }
}