Java SE(十一)之包装类(各种类型之间的转换)

Object类 &Number类

八种基本数据结构都分别有对应的包装类,属于引用数据类型。包装类层次结构如下

在这里插入图片描述
所以先介绍Object类和Number类

1.Object

2.Number类

常用方法

方法 含义
xxx xxxValue() 将 Number 对象转换为xxx数据类型的值并返回。如 int intValue()
valueOf() 返回一个 Number 对象指定的内置数据类型
toString() 以字符串形式返回值
parseInt() 将字符串转换为int型

注意下面的Integer等类都继承了Number类

包装类,装箱,拆箱

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能。(指路基本数据类型和引用数据类型区别

所以 Java 为每种基本数据类型分别设计了对应的类,称为包装类

装箱:基本数据类型转换为包装类的过程称为装箱( int 包装成 Integer 类的对象)
拆箱:包装类变为基本数据类型的过程称为拆箱( Integer 类的对象简化为 int)

八种基本数据类型对应的包装类如下:

基本类型 对应的包装类(位于java.lang包中)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

1.手动装箱/拆箱

手动的意思就是按照创建对象那套方法来处理包装类,但目前已经很少用了(Java5 提出了自动装箱),看一下示例吧:

// 将2023这个基本数据类型进行装箱,基本数据类型--->包装类
 Integer i = new Integer(2023);

  // 拆箱,将引用数据类型---> 基本数据类型
 int retValue = i.intValue();
 System.out.println(retValue); //2023
  
 // 也可以转换为不同类型的
 float f = i.floatValue();
 System.out.println(f); //2023.0

2.自动装箱/ 拆箱

目前都是自动装箱、拆箱

 // 自动装箱
 Integer x = 2023; // 等同于:Integer i = new Integer(2023);
 System.out.println(x);

  // 自动拆箱,x是包装类型,y是基本数据类型
  int y = x;
  System.out.println(y);

应用——常见包装类

主要讲解常见的Integer类和Character类

1.Integer类

Integer 类在对象中包装了一个基本类型 int 的值

(1)常用方法
注意基本都是static类,所以可以直接通过类调用。前几个方法很重要!

方法名 说明
static int parseInt(String s) 将数字字符串转换为 int 数值
string toString(int i) 返回一个表示该 Integer 值的 String 对象
static Integer valueOf(String s) 返回保存指定String值的 Integer 对象
static String toBinaryString(int i) 将整型 i 转成二进制(另外还有转成8进制,16进制的方法)
static Integer valueOf(int i) 返回表示指定的 int 值的 Integer 实例
int intValue() 以 int 类型返回该 Integer 的值

Byte、Short、Long、Float、Double、Boolean等和Integer方法都相似!

e.g.

String str = "456";
int num = Integer.parseInt(str);    // 将字符串转换为int类型的数值
int i = 789;
String s = Integer.toString(i);

另外parseInt还可以转化为相应的进制数,因为完整的方法名是
static int parseInt(String s, int radix),其中radix是指定的基数(基数可以是 10, 2, 8, 或 16 等进制数)

(2)常量

前两个比较重要!

常量 含义
MAX_VALUE 值为 2 31 2^{31} 231-1 的常量,它表示 int 类型能够表示的最大值。
MIN_VALUE 值为 − 2 31 -2^{31} 231 的常量,它表示 int 类型能够表示的最小值
SIZE 用来以二进制补码形式表示 int 值的比特位数
TYPE 表示基本类型 int 的 Class 实例

2.Character类

常用方法

方法 含义
char charValue() 将Character转成char
String toString() 将Character转成String
static boolean isDigit(char ch) 判断ch是不是数字
static boolean isLetter(char ch) 判断ch是不是字母
boolean isLetterOrDigit(int codePoint) 确定指定字符(Unicode 代码点)是否为字母或数字
boolean isLowerCase(char ch) 确定指定字符是否为小写字母
boolean isUpperCase(char ch) 确定指定字符是否为大写字母
char toLowerCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
char toUpperCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写

3.实战——各种类型之间的转换

综合上面的方法,总结平时转换的需求

(1)int和Integer相互转换

这个上面提到过,可以手动也可以自动装箱

public static void main(String[] args) {
    
    
        int m = 500;
        Integer obj = new Integer(m);  // 手动装箱
        int n = obj.intValue();  // 手动拆箱
        System.out.println("n = " + n);
    }

(2) char与int的互相转化

因为两者都是基本数据类型,可以直接转化,一般是通过隐式转化或者强制转化

char - -> int,可以隐式转化,但是注意此时转化的是字符的ASCII值

char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);

如果是数字字符转化为int,常见的技巧是-'0'

char c='5';//定义一个char类型
int i = c1-'0';//char转换为int,为整型5

同理如果想要int转char,可以+'0'

int m = 5;
char c = m+'0';

(3)基本数据类型转化为String

拿int转String举例,一般有三种方法:

  • 方式一:直接在数字后加一个空字符串
  • 方式二:通过String类静态方法valueOf()——推荐
  • 方法三:包装类的toString方法如Integer.toString()——推荐
 // int 转换为 String
public static void main(String[] args) {
    
    
        int number = 100;
        //方式1
        String s1 = number + "";
        System.out.println(s1);
        //方式2  public static String valueOf(int i)
        String s2 = String.valueOf(number);
        System.out.println(s2);
        // 方式三, public static String toString(int i)
        String s3 = Integer.toString(number);
        System.out.println(s3);
    }

(4)String转化为基本数据类型

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型,例如:

  • public static int parseInt(String s):将字符串参数转换为对应的int基本类型。
  • public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。

拿String转int举例,转换方式:

  • 方式一:通过Integer静态方法parseInt()进行转换(推荐)
  • 方式二:先将字符串数字转成Integer,再调用valueOf()方法
// String 转换为 int
 public static void main(String[] args) {
    
    
        String s = "100";
        //方式1  public static int parseInt(String s)
        int y = Integer.parseInt(s);
        System.out.println(y);
        
        //方式2:String --- Integer --- int
        Integer i = Integer.valueOf(s);
        int x = i.intValue();  //public int intValue()
        System.out.println(x); 
    }

参考链接:https://blog.csdn.net/qq_44715943/article/details/116331282

猜你喜欢

转载自blog.csdn.net/ji_meng/article/details/129045671