java基礎-Integer類常用方法介紹


                  java基礎-Integer類常用方法介紹

                                  作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

 

  在實際程序使用中,程序界面上用戶輸入的數據都是以字符串類型進行存儲的。而程序開發中,我們需要把字符串數據根據需求轉換成指定的基本數據類型,如年齡需要轉換成int類型,考試成績需要轉換成double類型等。那么,想實現字符串與基本數據之間轉換應該怎么辦呢?接下來我們就一起學習一下Java的包裝類吧。

 

一.基本類型包裝類概述

 Java中提供了相應的對象來解決該問題,基本數據類型對象包裝類:java將基礎數據類型值封裝成了對象。封裝成對象有什么好處?當然是可以提供更多的操作基本數值的功能啦~

  其中需要注意int對應的是Integer,char對應的Character,其它6個都是基本類型首字母大寫即可。基本數據類型的特點是用於在基本數據和字符串之間進行轉換。我們主要研究的類就是其中一個,即Integer,因為其它的類的方法跟它幾乎一致。要學會舉一反三喲~

 

二.Integer類常用方法

1>.ParseInt(String s)方法(將基本類型轉換成字符串。)

a>.用於將字符串轉換成基本數據類型(int),要求字符串必須是數字格式。

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class ArrayListDemo {
10     public static void main(String[] args) {
11         String year = "2018";
12         int i = Integer.parseInt(year);
13         System.out.println(i/2);
14     }
15 }
16 
17 
18 /*
19 以上代碼執行結果如下:
20 1009
21 */

b>.parseInt(String s,int radix)方法

  將字符串s按照radix進行轉換相應的進制數,然后運行的結果都是以十進制的形式打印。

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class ArrayListDemo {
10     public static void main(String[] args) {
11         String year = "1110";
12         String age = "A";
13         //指定year的進制為2進制
14         int i = Integer.parseInt(year,2);
15         //指定age的進制為16進制
16         int i2 = Integer.parseInt(age,16);    
17         System.out.println(i);
18         System.out.println(i2);
19     }
20 }
21 
22 /*
23 以上代碼執行結果如下:
24 14
25 10
26 */

2>.基本數據類型int轉換成字符串

a>.任何類型+"" 變成String類型(推薦使用)

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         int src = 3;
12         String dest = src + "";
13         System.out.println(dest+1);
14     }
15 }
16 
17 
18 
19 /*
20 31
21 */

b>.Integer類中的靜態方法toString()轉換成字符串

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         int src = 50;
12         String dest = Integer.toString(src);
13         System.out.println(dest+1);
14     }
15 }
16 
17 
18 
19 /*
20 501
21 */

c>.toString(int ,int 進制),將int整數轉成指定的進制數

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         int src = 32;
12         //將int整數轉換成指定的進制數
13         String dest = Integer.toString(src,2);    
14         System.out.println(dest);
15     }
16 }
17 
18 
19 
20 /*
21 100000
22 */

 3>.Integer的兩個靜態成員變量

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         int max = Integer.MAX_VALUE;
12         int min = Integer.MIN_VALUE;
13         System.out.println("int最大值是:"+max);
14         System.out.println("int最小值是:"+min);
15         
16         //根據上面的估計你就會做出舉一反三的動作,如下:
17         System.out.println("Long最大值是:"+Long.MAX_VALUE);
18         System.out.println("Long最小值是:"+Long.MIN_VALUE);
19         System.out.println("Double最大值是:"+Double.MAX_VALUE);
20         System.out.println("Double最小值是:"+Double.MIN_VALUE);
21     }
22 }
23 
24 
25 
26 /*
27 以上代碼執行結果如下:
28 int最大值是:2147483647
29 int最小值是:-2147483648
30 Long最大值是:9223372036854775807
31 Long最小值是:-9223372036854775808
32 Double最大值是:1.7976931348623157E308
33 Double最小值是:4.9E-324
34 */

4>.十進制轉成不同的進制,三個靜態方法的返回值都是以字符串的形式返回

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         int src = 1000;
12         String Binary = Integer.toBinaryString(src);
13         String OctalNumberSystem = Integer.toOctalString(src);
14         String Hexadecimal = Integer.toHexString(src);
15         System.out.printf("%d的二進制是:%s,八進制是:%s,十六進制是:%s\n",src,Binary,OctalNumberSystem,Hexadecimal);
16     }
17 }
18 
19 
20 
21 /*
22 以上代碼執行結果如下:
23 int最大值是:2147483647
24 int最小值是:-2147483648
25 Long最大值是:9223372036854775807
26 Long最小值是:-9223372036854775808
27 Double最大值是:1.7976931348623157E308
28 Double最小值是:4.9E-324
29 */

 

三.Interger類構造方法

  常用的構造方法Integer(String s)是將數字格式的字符串,傳遞到Integer類的構造方法中,創建Integer對象,包裝的是一個字符串。將構造方法中的字符串轉成基本數據類型,調用非靜態方法。

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         String s1 = new String("1000");
12         Integer src = new Integer(s1);
13         int dest = src.intValue();
14         System.out.println(dest--);
15         System.out.println(--dest);
16     }
17 }
18 
19 
20 
21 /*
22 1000
23 998
24 */

 

四.自動裝箱和自動拆箱

  從JDK1.5后出現的特性,即自動拆箱和自動裝箱。自動裝箱就是將基本數據類型直接變成Integer包裝類。自動拆箱和裝箱動作相反,即將對象中的數據變回基本數據類型。自動拆箱和裝箱的好處就是基本類型和引用類型可以直接運算,代碼如下:

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         Integer src = 100; //這里就是自動裝箱的過程,相當於Integer src = new Integer(100);
12         
13         int dest = src + 5; //我們知道src本身是引用數據類型,不能直接跟基本數據類型運算,首先它會自動進行拆箱操作,相當於:int dest = src.intValue() + 5 ;
14         System.out.println(dest);
15         
16     }
17 }
18 
19 
20 
21 /*
22 以上代碼執行結果如下:
23 105
24 */

  當然,一個事物都具有兩面性,雖然說自動拆箱和自動裝箱可以減少代碼的書寫量,還可以直接跟引用數據類型進行運算,但是它也存在一個弊端,即可能出現空指針異常。

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         Integer src = null;     //任何引用數據類型都可以指向空
12         src = src + 10;
13         System.out.println(src);
14     }
15 }
16 
17 
18 
19 /*
20 以上代碼執行結果如下:
21 Exception in thread "main" java.lang.NullPointerException
22     at cn.org.yinzhengjie.demo.Demo1.main(Demo1.java:12)
23 */

 

五.小試牛刀

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.demo;
 8 
 9 public class Demo1 {
10     public static void main(String[] args) {
11         Integer i = new Integer(100);
12         Integer j = new Integer(100);
13         System.out.println(i==j);            //false
14         System.out.println(i.equals(j));    //true
15         System.out.println("---------------");
16         
17         Integer a = 500;        //此時a進行了裝箱操作
18         Integer b = 500;        //此時b也進行了裝箱操作,兩個數值上是相等的,但是並不是同一個對象。
19         System.out.println(a == b);            //false
20         System.out.println(a.equals(b));    //true
21         System.out.println("---------------");
22         
23         
24         //數據在byte范圍內,JVM不會重新new對象。(可以查看源碼)
25         Integer x = 127;
26         Integer y = 127;
27         System.out.println(x==y);            //true
28         System.out.println(x.equals(y));    //true
29         System.out.println("---------------");
30     }
31 }
32 
33 
34 
35 /*
36 以上代碼執行結果如下:
37 false
38 true
39 ---------------
40 false
41 true
42 ---------------
43 true
44 true
45 ---------------
46 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM