日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java基础:基本数据类型包装类

發(fā)布時(shí)間:2025/4/16 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java基础:基本数据类型包装类 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 基本類型包裝類概述

為了方便操作基本數(shù)據(jù)類型值,將其封裝成了對(duì)象,在對(duì)象中定義了屬性和行為豐富了該數(shù)據(jù)的操作。用于描述該對(duì)象的類就稱為基本數(shù)據(jù)類型對(duì)象包裝類。

  • 將基本數(shù)據(jù)類型封裝成對(duì)象的好處在于可以在對(duì)象中定義更多的功能方法操作該數(shù)據(jù)。
  • 常用的操作之一:用于基本數(shù)據(jù)類型與字符串之間的轉(zhuǎn)換。
  • 基本類型和包裝類的對(duì)應(yīng):Byte,Short,Integer,Long,Float,Double,Character,Boolean
基本數(shù)據(jù)類型包裝數(shù)據(jù)類型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

2. 基本數(shù)據(jù)類型包裝類應(yīng)用

該包裝對(duì)象主要用于基本類型和字符串之間的轉(zhuǎn)換

2.1 基本類型 → 字符串

  • 基本類型數(shù)值+”“
  • 用String類中的靜態(tài)方法valueOf(基本類型數(shù)值);

2.2 字符串 → 基本類型

使用包裝類中的靜態(tài)方法xxx parseXxx(“xxx”);

  • int parseInt(String str);
  • long parseLong(String str);
  • boolean parseBoolean(String str);
  • 只有Character沒有parse方法。

如果字符串被Integer進(jìn)行對(duì)象的封裝,可使用另一個(gè)非靜態(tài)的方法,intValue。

將一個(gè)Integer對(duì)象轉(zhuǎn)成基本數(shù)據(jù)類型值。

用Integer的靜態(tài)方法valueOf(String s);

3. Integer類

3.1 Integer類概述

Integer 類在對(duì)象中包裝了一個(gè)基本類型 int 的值
該類提供了多個(gè)方法,能在 int 類型和 String 類型之間互相轉(zhuǎn)換,還提供了處理 int 類型時(shí)非常有用的其他一些常量和方法

3.2 構(gòu)造方法

public Integer(int value)
public Integer(String s)

PS:這個(gè)字符串必須是由數(shù)字字符組成

3.3 int類型和String類型的相互轉(zhuǎn)換

返回值方法說明
intintValue()以 int 類型返回該 Integer 的值
intparseInt(String s)將字符串參數(shù)作為有符號(hào)的十進(jìn)制整數(shù)進(jìn)行解析
StringtoString(int i)返回一個(gè)表示指定整數(shù)的 String 對(duì)象
IntegervalueOf(int i)返回一個(gè)表示指定的 int 值的 Integer 實(shí)例
IntegervalueOf(String s)返回保存指定的 String 的值的 Integer 對(duì)象

代碼示例:

package cn.itcast_03; /** int類型和String類型的相互轉(zhuǎn)換* * int -- String* String.valueOf(number)* * String -- int* Integer.parseInt(s)*/ public class IntegerDemo { public static void main(String[] args) { // int -- String int number = 100; // 方式1 String s1 = "" + number; System.out.println("s1:" + s1); // 方式2 String s2 = String.valueOf(number); System.out.println("s2:" + s2); // 方式3 // int -- Integer -- String Integer i = new Integer(number); String s3 = i.toString(); System.out.println("s3:" + s3); // 方式4 // public static String toString(int i) String s4 = Integer.toString(number); System.out.println("s4:" + s4); System.out.println("-----------------"); // String -- int String s = "100"; // 方式1 // String -- Integer -- int Integer ii = new Integer(s); // public int intValue() int x = ii.intValue(); System.out.println("x:" + x); //方式2 //public static int parseInt(String s) int y = Integer.parseInt(s); System.out.println("y:"+y); } }

運(yùn)行結(jié)果:

3.4 常用的基本進(jìn)制轉(zhuǎn)換

返回值方法說明
StringtoBinaryString(int i)以二進(jìn)制(基數(shù) 2)無符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式
StringtoOctalString(int i)以八進(jìn)制(基數(shù) 8)無符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式
StringtoHexString(int i)以十六進(jìn)制(基數(shù) 16)無符號(hào)整數(shù)形式返回一個(gè)整數(shù)參數(shù)的字符串表示形式

3.5 十進(jìn)制轉(zhuǎn)換成其他進(jìn)制

返回值方法聲明功能描述
StringtoBinaryString(int i)十進(jìn)制轉(zhuǎn)換成二進(jìn)制
StringtoOctalString(int i)十進(jìn)制轉(zhuǎn)換成八進(jìn)制
StringtoHexString(int i)十進(jìn)制轉(zhuǎn)換成十六進(jìn)制
StringtoString(int i,int radix)十進(jìn)制轉(zhuǎn)換成任何進(jìn)制

3.6 其他進(jìn)制到十進(jìn)制

public static int parseInt(String s,int radix)

代碼示例:

package cn.itcast_04; /** 常用的基本進(jìn)制轉(zhuǎn)換* public static String toBinaryString(int i)* public static String toOctalString(int i)* public static String toHexString(int i)* * 十進(jìn)制到其他進(jìn)制* public static String toString(int i,int radix)* 由這個(gè)我們也看到了進(jìn)制的范圍:2-36* 為什么呢?0,...9,a...z* * 其他進(jìn)制到十進(jìn)制* public static int parseInt(String s,int radix)*/ public class IntegerDemo { public static void main(String[] args) { // 十進(jìn)制到二進(jìn)制,八進(jìn)制,十六進(jìn)制 System.out.println(Integer.toBinaryString(100)); System.out.println(Integer.toOctalString(100)); System.out.println(Integer.toHexString(100)); System.out.println("-------------------------"); // 十進(jìn)制到其他進(jìn)制 System.out.println(Integer.toString(100, 10)); 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, 5)); System.out.println(Integer.toString(100, 7)); System.out.println(Integer.toString(100, -7)); System.out.println(Integer.toString(100, 70)); System.out.println(Integer.toString(100, 1)); System.out.println(Integer.toString(100, 17)); System.out.println(Integer.toString(100, 32)); System.out.println(Integer.toString(100, 37)); System.out.println(Integer.toString(100, 36)); System.out.println("-------------------------"); //其他進(jìn)制到十進(jìn)制 System.out.println(Integer.parseInt("100", 10)); System.out.println(Integer.parseInt("100", 2)); System.out.println(Integer.parseInt("100", 8)); System.out.println(Integer.parseInt("100", 16)); System.out.println(Integer.parseInt("100", 23)); //NumberFormatException //System.out.println(Integer.parseInt("123", 2)); } }

運(yùn)行結(jié)果:

3.7 自動(dòng)拆裝箱

package cn.itcast_05; /** JDK5的新特性* 自動(dòng)裝箱:把基本類型轉(zhuǎn)換為包裝類類型* 自動(dòng)拆箱:把包裝類類型轉(zhuǎn)換為基本類型* * 注意一個(gè)小問題:* 在使用時(shí),Integer x = null;代碼就會(huì)出現(xiàn)NullPointerException。* 建議先判斷是否為null,然后再使用。*/ public class IntegerDemo { public static void main(String[] args) { // 定義了一個(gè)int類型的包裝類類型變量i // Integer i = new Integer(100); Integer ii = 100; ii += 200; System.out.println("ii:" + ii); // 通過反編譯后的代碼 // Integer ii = Integer.valueOf(100); //自動(dòng)裝箱 // ii = Integer.valueOf(ii.intValue() + 200); //自動(dòng)拆箱,再自動(dòng)裝箱 // System.out.println((new StringBuilder("ii:")).append(ii).toString()); Integer iii = null; // NullPointerException if (iii != null) { iii += 1000; System.out.println(iii); } } }

4. BigInteger

BigInteger:可以讓超過Integer范圍內(nèi)的數(shù)據(jù)進(jìn)行運(yùn)算。超大整數(shù)相加的問題

方法聲明功能描述
add(BigInteger val)
subtract(BigInteger val)
multiply(BigInteger val)
divide(BigInteger val)
divideAndRemainder(BigInteger val)返回商和余數(shù)的數(shù)組
BigInteger(String val)構(gòu)造方法

5. BigDecimal

不可變的、任意精度的有符號(hào)十進(jìn)制數(shù)。由于在運(yùn)算的時(shí)候,float類型和double很容易丟失精度,演示案例。所以,為了能精確的表示、計(jì)算浮點(diǎn)數(shù),Java提供了BigDecimal

方法聲明功能描述
BigDecimal(String val)構(gòu)造方法
add(BigDecimal augend)
subtract(BigDecimal subtrahend)
multiply(BigDecimal multiplicand)
divide(BigDecimal divisor)
divide(BigDecimal divisor,int scale,int roundingMode)商、幾位小數(shù)、如何取舍

6. Character類

6.1 Character類概述

Character 類在對(duì)象中包裝一個(gè)基本類型 char 的值,此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數(shù)字,等等),并將字符從大寫轉(zhuǎn)換成小寫,反之亦然

6.2 構(gòu)造方法

public Character(char value)

6.3 常用方法

方法說明
isUpperCase(char ch)判斷是否是大寫
isLowerCase(char ch)判斷是否是小寫
isDigit(char ch)判斷是否是數(shù)字
char toUpperCase(char ch)轉(zhuǎn)換成大寫
char toLowerCase(char ch)轉(zhuǎn)換成小寫

代碼示例:

package cn.itcast_02; /** public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符* public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符* public static boolean isDigit(char ch):判斷給定的字符是否是數(shù)字字符* public static char toUpperCase(char ch):把給定的字符轉(zhuǎn)換為大寫字符* public static char toLowerCase(char ch):把給定的字符轉(zhuǎn)換為小寫字符*/ public class CharacterDemo { public static void main(String[] args) { // public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符 System.out.println("isUpperCase:" + Character.isUpperCase('A')); System.out.println("isUpperCase:" + Character.isUpperCase('a')); System.out.println("isUpperCase:" + Character.isUpperCase('0')); System.out.println("-----------------------------------------"); // public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符 System.out.println("isLowerCase:" + Character.isLowerCase('A')); System.out.println("isLowerCase:" + Character.isLowerCase('a')); System.out.println("isLowerCase:" + Character.isLowerCase('0')); System.out.println("-----------------------------------------"); // public static boolean isDigit(char ch):判斷給定的字符是否是數(shù)字字符 System.out.println("isDigit:" + Character.isDigit('A')); System.out.println("isDigit:" + Character.isDigit('a')); System.out.println("isDigit:" + Character.isDigit('0')); System.out.println("-----------------------------------------"); // public static char toUpperCase(char ch):把給定的字符轉(zhuǎn)換為大寫字符 System.out.println("toUpperCase:" + Character.toUpperCase('A')); System.out.println("toUpperCase:" + Character.toUpperCase('a')); System.out.println("-----------------------------------------"); // public static char toLowerCase(char ch):把給定的字符轉(zhuǎn)換為小寫字符 System.out.println("toLowerCase:" + Character.toLowerCase('A')); System.out.println("toLowerCase:" + Character.toLowerCase('a')); } }

6.4 練習(xí)

代碼示例:統(tǒng)計(jì)一個(gè)字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)

package cn.itcast_03; import java.util.Scanner; /** 統(tǒng)計(jì)一個(gè)字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)* * 分析:* A:定義三個(gè)統(tǒng)計(jì)變量。* int bigCont=0;* int smalCount=0;* int numberCount=0;* B:鍵盤錄入一個(gè)字符串。* C:把字符串轉(zhuǎn)換為字符數(shù)組。* D:遍歷字符數(shù)組獲取到每一個(gè)字符* E:判斷該字符是* 大寫 bigCount++;* 小寫 smalCount++;* 數(shù)字 numberCount++;* F:輸出結(jié)果即可*/ public class CharacterTest { public static void main(String[] args) { // 定義三個(gè)統(tǒng)計(jì)變量。 int bigCount = 0; int smallCount = 0; int numberCount = 0; // 鍵盤錄入一個(gè)字符串。 Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)字符串:"); String line = sc.nextLine(); // 把字符串轉(zhuǎn)換為字符數(shù)組。 char[] chs = line.toCharArray(); // 歷字符數(shù)組獲取到每一個(gè)字符 for (int x = 0; x < chs.length; x++) { char ch = chs[x]; // 判斷該字符 if (Character.isUpperCase(ch)) { bigCount++; } else if (Character.isLowerCase(ch)) { smallCount++; } else if (Character.isDigit(ch)) { numberCount++; } } // 輸出結(jié)果即可 System.out.println("大寫字母:" + bigCount + "個(gè)"); System.out.println("小寫字母:" + smallCount + "個(gè)"); System.out.println("數(shù)字字符:" + numberCount + "個(gè)"); } }

運(yùn)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的Java基础:基本数据类型包装类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。