当前位置: 首页 > article >正文

8种基本类型的包装类(与String的转换)

java针对8种基本数据类型,定义了相应的引用类型:包装类(封装类),有了类的特点,就能调用类中的方法,java才是真正的面向对象。
基本数据类型	   包装类

byte			Byte

short			Short

int				Integer

long			Long

float			Float

double			Double

boolean			Boolean

char			Character

其中,Byte、Short、Integer、Long、Float、Double 的父类是 NumberBoolean、Character 继承自 Object类

在这里插入图片描述

在这里插入图片描述


2、基本数据类型 与 包装类之间的转换

2.1、为什么需要转换

一方面,在有些场景下,需要使用基本数据类型对应的包装类的对象,

此时,就需要将基本数据类型的变量 转换为 包装类的对象,

比如,ArrayList的add(Object obj) 或者 Object类的equals(Object obj);

另一方面,对于包装类来说,既然我们使用的是对象,那么对象是不能进行 + - * / 等运算的,

所以,为了能够进行这些运算,就需要将包装类的对象转换为基本数据类型的变量。

2.2、如何转换

基本数据类型 --> 包装类 :使用包装类的构造器 或者 调用包装类的valueOf(xxx xx)

包装类 --> 基本数据类型 :调用包装类的xxxValue()

注意:原来使用基本数据类型变量的位置,改成包装类以后,对于成员变量来说,其默认值变化了

public void test1(){
	int i1 = 10;
	Integer i2 = new Integer(i1);
	System.out.println(i2.toString());

	float f1 = 12.3F;
	Float f2 = new Float(f1);
	System.out.println(f2.toString());

	String s1 = "32.1";
	Float f3 = new Float(s1);
	System.out.println(f3.toString());
}


public void test2(){
	int i1 = 10
	Integer i2 = Integer.valueOf(i1);
	System.out.println(i2.toString());

	int i3 = i2.intValue();
	i3 = i3 + 1;

	flaot f1 = 12.3F;
	Float f2 = Float.valueOf(f1);
	System.out.println(f2.toString());

	f3 = f3.floatValue();
	f3 = f3 + 1;

	Boolean b1 = Boolean.valueOf(true);
}

jdk5.0新特性:自动装箱、自动拆箱

public void test2(){

	// 自动装箱:基本数据类型 --> 包装类
	int i1 = 10;
	Integer i2 = i1; // 自动装箱
	System.out.println(i2.toString());

	Integer i3 = i1 +1; // 自动装箱

	Boolean b1 = true; // 自动装箱

	Float f1 = 12.3F; // 自动装箱


	// 自动拆箱:包装类 --> 基本数据类型
	int i4 = i2; // 自动拆箱

	boolean b2 = b1; // 自动拆箱
}

3、String 与 基本数据类型 之间的转换

包装类中的parseXxx方法,可以将字符串类型的数据 --> 对应的基本数据类型

但是,在将字符串转换为其他类型前,一定要确认字符串里面的内容能否正常转换

比如,你想把"asdfghjk"这个字符串 转换为 int类型,那TM能行吗?这时候就会报错的!

3.1、String --> 基本类型数据

class Method{
	public static void main(String[] args) {
		
		byte b   = Byte.parseByte("11");
		
		short s  = Short.parseShort("141");
 
		int i    = Integet.parseInt("430");

		long l   = Long.parseLong("11211");

		float f  = Float.parseFloat("66.6F");

		double d  = Double.parseDouble("666.666");

		boolean boo = Boolean.parseBoolean("true");

		System.out.println("b = " + b); // b = 11
		System.out.println("s = " + s); // s = 141
		System.out.println("i = " + i); // i = 430
		System.out.println("l = " + l); // l = 11211
		System.out.println("f = " + f); // f = 66.6
		System.out.println("d = " + d); // d = 666.666
		System.out.println("boo = " + boo); // boo = 11
	}
}
咳咳

这里没有String 的转换 --> char

因为,在八大包装类中,除了Character类外,其他的7种包装类中都有parseXxx方法,

所以,如果,你想将,字符串类型的数据 转换成 char类型的数据,可以通过String类中的toCharArray()charAt() 来做到,

字符串.toCharArray():将字符串 转换为 字符数组

字符串.charAt(下标):获取,字符串中的某位置的字符元素

如下:


class Demo {
    public static void main(String[] args) {

        String string = "CSDN_yyds";

		// `字符串.toCharArray()`:将字符串转换为字符数组
        char[] charArray = string.toCharArray();
		System.out.println("string字符串一共有" + charArray.length + "个字符.");

		for (int i = 0; i < charArray.length; i++) {
            System.out.println("第" + (i + 1) + "个字符是:" + charArray[i]);
        }

		// 用,字符串.charAt(下标),获取字符串中某位置的字符元素
        char temp_char_0 = string.charAt(0);
        char temp_char_1 = string.charAt(1);
				...
				...
        char temp_char_8 = string.charAt(8);

		System.out.println("string字符串第一个元素为:" + temp_char_0);
        System.out.println("string字符串第二个元素为:" + temp_char_1);
				...
				...
        System.out.println("string字符串第九个元素为:" + temp_char_8);

	}
}

3.2、基本类型数据 --> String

# 1、直接与空字符串进行拼接
		// byte --> String
        byte temp_byte = 127;
        String temp_string_0 = 127 + "";
 
        // short --> String
        short temp_short = 141;
        String temp_string_1 = temp_short + "";
 
        // int --> String
        int temp_int = 428;
        String temp_string_2 = temp_int + "";
 
        // long --> String
        long temp_long = 11211;
        String temp_string_3 = temp_long + "";
 
        // float --> String
        float temp_float = 135.0F;
        String temp_string_4 = temp_float + "";
 
        // double --> String
        double temp_double = 433.0;
        String temp_string_5 = temp_double + "";
 
        // char --> String
        char temp_char = 'A';
        String temp_string_6 = temp_char + "";
 
        // boolean --> String
        boolean temp_boolean = true;
        String temp_string_7 = temp_boolean + "";


# 2String类的valueOf方法
		String string_0 = String.valueOf(temp_byte) + "_EX";
		String string_1 = String.valueOf(temp_short) + "_EX";
		String string_2 = String.valueOf(temp_int) + "_EX";
		String string_3 = String.valueOf(temp_long) + "_EX";
		String string_4 = String.valueOf(temp_float) + "_EX";
		String string_5 = String.valueOf(temp_double) + "_EX";
		String string_6 = String.valueOf(temp_char) + "_EX";
		String string_7 = String.valueOf(temp_boolean) + "_EX";


3.3、String --> 包装类


可以先将 String 转换为 基本数据类型,

再将 基本数据类型 转换为 对应的包装类


http://www.kler.cn/a/233601.html

相关文章:

  • CSS教程(二)- CSS选择器
  • QML项目实战:自定义CheckBox
  • 丹韵红墙成红毯至美背景!冠珠华脉「雍华京韵」于M essential大秀绽放京韵时尚
  • C#各版本汇总
  • 测试实项中的偶必现难测bug--一键登录失败
  • ANDROIDWORLD: A Dynamic BenchmarkingEnvironment for Autonomous Agents论文学习
  • 降准是什么意思?降准对股市有哪些影响?
  • 第70讲axios后端请求工具类封装
  • MySQL单主模式部署组复制集群
  • 机器学习聚类算法
  • Collectors.toMap
  • MySQL基础查询篇(9)-数学函数在查询中的应用
  • Linux中的numactl命令指南
  • 代码随想录算法训练营day15||二叉树part02、102.二叉树的层序遍历、 226.翻转二叉树(优先掌握递归)、101. 对称二叉树 (优先掌握递归)
  • MATLAB实现随机森林回归算法
  • 会声会影绿幕抠图操作方法 会声会影绿幕抠图有绿色残边 绿幕抠图视频有绿边怎么处理 抖音怎么剪辑视频 视频剪辑软件推荐
  • Linux 设置自动挂载磁盘
  • LabVIEW伺服阀性能参数测试
  • VitePress-13- 配置-title的作用详解
  • 微服务介绍、使用 Nacos 实现远程调用以及 OpenFeign 的使用
  • containerd中文翻译系列(二十)快照器
  • OnlyOffice-8.0版本深度测评
  • 鸿蒙开发系列教程(十四)--组件导航:Tabs 导航
  • codeforces 126B password
  • CSS中的继承是什么?哪些属性可以继承,哪些不能继承?
  • Blazor入门100天 : 自做一个手势滑动组件