Java中的基本型別包裝類 Integer 類該怎麼使用?

蝴蝶飛啊飛發表於2019-09-19

1 、概述

Integer 類在物件中包裝了一個基本型別 int

Integer 類提供了很多方法,能在 int 型別和 String 型別之間相互轉換

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        System.out.println(Integer.toBinaryString(100));// 轉換成二進位制數: 1100100

        System.out.println(Integer.toOctalString(100));// 轉換成八進位制數: 144

        System.out.println(Integer.toHexString(100));// 轉換成十六進位制數: 64

        System.out.println("---------------------------");

        System.out.println(Integer.MAX_VALUE);// 代表 int 所能表示的最大值

        System.out.println(Integer.MIN_VALUE);// 代表 int 所能表示的最小值

    }

}

String 型別轉換成 int 型別:

package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        int i1 = 100;

        System.out.println("i1 的值為: "+i1);

        Integer i2 = new Integer(i1);

        System.out.println("i2 的值為: "+i2);

        String s1 = "100";

        Integer i3 = new Integer(s1);// 字串轉換成數字,前提是這個字串是由陣列字元組成

        System.out.println("i3 的值為: "+i3);

    }

}

2 、構造方法

public Integer(int value)

public Integer(String s)

3 、成員方法

public int intValue()

public static int parseInt(String s)

public static String toString(int i)

public static Integer valueOf(int i)

public static Integer valueOf(String s)

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        //int -> Stirng

        int i1 = 100;

        String s1 = ""+ i1;//int -> Stirng

        System.out.println(s1);// 輸出字串

        String s2 = String.valueOf(i1);//int -> Stirng, 返回給定引數的原生 Number 物件值

        System.out.println(s2);

        Integer i2 = new Integer(i1);

        System.out.println(i2);

        String s3 = Integer.toString(i1);

        System.out.println(s3);

        System.out.println("------------------------");

        //String -> int

        String st1 = "200";

        Integer in1 = new Integer(st1);

        System.out.println(in1);

        int in2 = in1.intValue();

        System.out.println(in2);

        System.out.println(Integer.parseInt(st1));//parseInt() 方法用於將字串引數作為有符號的十進位制整數進行解析

    }

}

4 、常用的基本進位制轉換

public static String toBinaryString(int i)

public static String toOctalString(int i)

public static String toHexString(int i)

5 、十進位制轉到其他進位制

public static String toString(int i,int radix)

6 、其他進位制轉到十進位制

public static int parseInt(String s,int radix)

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        System.out.println(Integer.toBinaryString(100));// 十進位制轉二進位制

        System.out.println(Integer.toOctalString(100));// 十進位制轉八進位制

        System.out.println(Integer.toHexString(100));// 十進位制轉十六進位制

        System.out.println("---------------------------");

        // 十進位制轉到其他進位制

        System.out.println(Integer.toString(100,2));// 十進位制轉二進位制

        System.out.println(Integer.toString(100,8));// 十進位制轉八進位制

        System.out.println(Integer.toString(100,16));// 十進位制轉十六進位制

        System.out.println(Integer.toString(100,7));// 十進位制轉七進位制

        System.out.println(Integer.toString(100,30));// 十進位制轉三十進位制

        System.out.println("============================");

        // 其他進位制轉到十進位制

        System.out.println(Integer.parseInt("100",10));// 那個數字的 10 進位制是 100 100

        System.out.println(Integer.parseInt("100",2));// 那個數字的 2 進位制是 100 4

        System.out.println(Integer.parseInt("100",8));// 那個數字的 8 進位制是 100 64

        System.out.println(Integer.parseInt("100",16));// 那個數字的 16 進位制是 100 256

    }

}

7 、自動裝箱與拆箱

Integer x = new Integer(4); 可以寫成 Integer x = 4; (自動裝箱)

x = x + 5; (自動拆箱),通過 intValue 方法

JDK 1.5 新特性(自動裝箱):把基本型別轉換為包裝類型別

JDK 1.5 新特性(自動拆箱):把包裝類型別轉換為基本型別

 package zhengshu;

public class IntegerDm {

    public static void main(String[] args){

        byte b1 = 100;

        byte b2 = b1;

        Integer i1 = new Integer(200);// 定義一個 int 型別的包裝型別變數 i1

        Integer i2 = 300;

        i2 = i2 + 400;

        System.out.println("i2 的值為: "+i2);// 輸出: 700

        Integer i3 = Integer.valueOf(500);// 自動裝箱

        i3 = Integer.valueOf(i3.intValue() + 60);// 自動拆箱,再自動裝箱

        System.out.println((new StringBuilder("i3 的值為: ")).append(i3).toString());// 輸出: 560

    }

}

package zhengshu;

function(){   //外匯返傭:http://www.fx61.com/

public class IntegerDm {

    public static void main(String[] args){

        Integer i1 = new Integer(128);

        Integer i2 = new Integer(128);

        System.out.println(i1 == i2);

        System.out.println(i1.equals(i2));

        System.out.println("-----------------------");

        Integer i3 = 128;

        Integer i4 = 128;

        System.out.println(i3 == i4);

        System.out.println(i3.equals(i4));

        System.out.println("=========================");

        Integer i5 = 127;

        Integer i6 = 127;

        System.out.println(i5 == i6);

        System.out.println(i5.equals(i6));

        System.out.println("+++++++++++++++++++++++++");

        int i7 = 1280;

        Integer i8 = 1280;

        System.out.println(i7 == i8);

        // 針對 -128 127 之間的資料,做了一個資料緩衝池,如果資料是該範圍內的,每次並不建立新的空間

    }

}

注意:

Integer 的資料直接賦值,如果在 -128 127 之間,會直接從緩衝池裡獲取資料

在使用時,Integer x = null; 上面的程式碼就會出現 NullPointerException (空指標異常)

8 、為了對基本資料型別進行更多的操作,Java 針對每一種基本資料型別提供了對應的類型別:包裝類型別。

byte    Byte

short   Short

int     Integer

long    long

float     Float

double   Double

char    Character

booleanBoolean

JDK5 中新增了新特性(下面給出例項):

 自動裝箱:把基本型別轉化為包裝類型別

 自動拆包:把包裝類型別轉換為基本型別

注意:

 使用時如果設定 Integer x=null 程式碼會出現空指標異常。

9 Integer 型別的靜態成員方法(主要用到 D E 兩個方法)

A public static String toBinaryString(int i)

B public static String toOctalString(int i)

C public static String toHexString(int i)

 將 int 型別轉換為常用的基本進位制的字串型別如: Integer.toHexString(100)

D public static String toString(int i int radix) int 型別轉換為指定的 radix 進位制的字串型別,進位制範圍是 2~36 因為 0-9 a-z 一共 36 個數,

E public static int parseInt(String s int radix) radix 進位制的字串到十進位制

F public static int parseInt(String s) 將字串型別轉化為int 型別,用相似的方法可以實現字串型別轉換為基本型別,下面 int-String 型別轉換例項中有介紹。

G public static String toString(int i) int 型別轉換為字串型別

H public static Integer valueOf(int i) int 型別轉換為 Integer 型別

I public static Integer valueOf(String s) String 型別轉換為 Integer 型別

10 Integer 型別的靜態成員變數

Integer.MAX_VALUE //int 範圍的最大值

Integer.MIN_VALUE //int 範圍的最小值

11 Integer 類中的成員方法

public int intValue(); Integer 型別返回為 int 型別

12 Character

Character 類在物件中包裝了一個基本型別 char 的單個欄位,

public static boolean isUpperCase(char ch)// 大寫

public static boolean isLowerCase(char ch)// 小寫

public static boolean isDigit (char ch)// 數字

public static char toUpperCase(char ch)// 轉換為大寫字元

public static char toLowerCase(char ch)// 轉換為小寫字元

13 int String 的相互轉換例項

package test07_Integer;

//int String 型別的相互轉換

//

public class IntegerDemo {

public static void main(String[] args) {

// int->String

int number=96;

// 方式 1

String s1=""+number;

System.out.println("s1:"+s1);

// 方式 2( 常用 )

String s2=String.valueOf(number);

System.out.println("s2:"+s2);

// 方式 3

String s3=Integer.toString(number);

System.out.println("s3:"+s3);

// 方式 4 int->Integer->String

Integer i=Integer.valueOf(number);

String s4=i.toString();

System.out.println("s4:"+s4);

//Sting->int

String s="96";

// 方式一

int i1=Integer.parseInt(s);

System.out.println("i1:"+i1);

// 方式 2

Integer ii=Integer.valueOf(i1);

int i2=ii.intValue();

System.out.println("i2:"+i2);

// 注意此方法,如果將一個字串型別轉換為 float 型別

float f=Float.parseFloat(s);

System.out.println("f:"+f);

// 同理字串轉換為基本型別都可以呼叫基本型別對應的包裝型別中的靜態方法

// 基本型別 x= 包裝型別 .parse 基本型別 (String s);

}

}

14 自動拆箱、自動裝箱時儲存方式例項:

 

package test07_Integer;

public class IntegerDemo2 {

public static void main(String[] args) {

// 自動裝箱:把基本資料型別轉化為包裝類型別

Integer ii=100;

// 自動拆箱:把包裝類型別轉換為基本型別

ii+=200;

System.out.println("ii:"+ii);

// 原因 Integer 資料直接賦值,如果在 -128~127 之間會從直接從資料池中獲取資料,不在此範圍內的資料需要呼叫 new integer() 方法建立物件

Integer ii1=127;

Integer ii2=127;

// 比較 ii1 ii2 的值

System.out.println(ii1.equals(ii2));//true

// 比較 ii1 ii2 的地址值

System.out.println(ii1==ii2);//true

Integer ii3=128;

Integer ii4=128;

System.out.println(ii3.equals(ii4));//true

System.out.println(ii3==ii4);//false

}

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946279/viewspace-2657541/,如需轉載,請註明出處,否則將追究法律責任。

相關文章