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

java针对8种基本数据类型,定义了相应的引用类型:包装类(封装类),有了类的特点,就能调用类中的方法,java才是真正的面向对象。
基本数据类型	   包装类byte			Byteshort			Shortint				Integerlong			Longfloat			Floatdouble			Doubleboolean			Booleanchar			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 = 10Integer 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 = 11System.out.println("s = " + s); // s = 141System.out.println("i = " + i); // i = 430System.out.println("l = " + l); // l = 11211System.out.println("f = " + f); // f = 66.6System.out.println("d = " + d); // d = 666.666System.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 --> Stringbyte temp_byte = 127;String temp_string_0 = 127 + "";// short --> Stringshort temp_short = 141;String temp_string_1 = temp_short + "";// int --> Stringint temp_int = 428;String temp_string_2 = temp_int + "";// long --> Stringlong temp_long = 11211;String temp_string_3 = temp_long + "";// float --> Stringfloat temp_float = 135.0F;String temp_string_4 = temp_float + "";// double --> Stringdouble temp_double = 433.0;String temp_string_5 = temp_double + "";// char --> Stringchar temp_char = 'A';String temp_string_6 = temp_char + "";// boolean --> Stringboolean 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.hqwc.cn/news/465022.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序的大学生心理测试+后台管理

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

C++ 动态规划 数位统计DP 计数问题

给定两个整数 a 和 b &#xff0c;求 a 和 b 之间的所有数字中 0∼9 的出现次数。 例如&#xff0c;a1024&#xff0c;b1032 &#xff0c;则 a 和 b 之间共有 9 个数如下&#xff1a; 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出现 10 次&#xff0c;1 出现 10…

人力资源智能化管理项目(day05:角色管理)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 搭建页面结构 分页组件&#xff1a;设置layout&#xff0c;表示需要显示的内容&#xff0c;用逗号分隔&#xff0c;布局元素会依次显示。prev表示上一页&#xff0c;next为…

【GO语言卵细胞级别教程】04.GO函数介绍

【GO语言卵细胞级别教程】04.GO函数介绍 目录&#xff1a; 【GO语言卵细胞级别教程】04.GO函数介绍0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 0.创建项目 创建目录 执行命令加载模块 cd 02.gostudy目录下 1.进入目录下 cd 02.gostudy 2.初始化模块变量 go …

Linux网络编程——tcp套接字

文章目录 主要代码关于构造listen监听accepttelnet测试读取信息掉线重连翻译服务器演示 本章Gitee仓库&#xff1a;tcp套接字 主要代码 客户端&#xff1a; #pragma once#include"Log.hpp"#include<iostream> #include<cstring>#include<sys/wait.h…

【java】11:IDEA常用快捷键+包

1. IDEA 常用快捷键 删除当前行, 默认是 ctrl Y 自己配置 ctrl d复制当前行, 自己配置 ctrl alt 向下光标补全代码 alt /添加注释和取消注释 ctrl / 【第一次是添加注释&#xff0c;第二次是取消注释】导入该行需要的类 先配置 auto import , 然后使用 altenter 即可快速…

AlmaLinux右键菜单(基于GNOME桌面)

文章目录 前言前提说明在文件上右键在文件夹上右键 前言 在使用VSCode的过程中&#xff0c;AlmaLinux没能像Windows一样在右键菜单上显示打开方式&#xff0c;所以找了一下解决方案&#xff0c;罗列出来 前提说明 虽然说无论是media还是StackOverflow都推荐使用这条命令&…

PLC在物联网中位置—承上启下,与上位机下位机的关联。

谈到物联网&#xff0c;就绕不开PLC&#xff0c;本文着重介绍PLC的定义、与单片机的区分&#xff0c;价值、物联网中的位置&#xff0c;以及和上位机、下位机的关联&#xff0c;让友友们对PLC有个全面的认知。 一、什么是PLC PLC是可编程逻辑控制器&#xff08;Programmable L…

「递归算法」:反转链表

一、题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#xff1a…

springboot集成elasticsearch

一、依赖下载 创建好一个springboot项目&#xff0c;需要集成es&#xff1a; 因为springboot默认集成了es&#xff0c;但是版本号需要与本地或者服务器es的版本号一致&#xff0c;我本地es版本是7.14.0&#xff0c;所以需要在<properties></properties>中指定es版…

12.状态模式

文章目录 状态模式总结 状态模式 介绍 状态模式它允许一个对象在其内部状态改变时改变其行为&#xff0c;使对象看起来似乎修改了其类。状态模式的主要目的是将对象的状态封装成不同的类&#xff0c;并将对象的行为委托给当前状态。 组成 Context&#xff08;环境&#xff09;&…

开启Android学习之旅-1

最近在学习《第一行代码 Android》&#xff0c;两天看书把所有代码都敲了一遍。由于之前没有接触过 Kotlin&#xff0c;导致了囫囵吞枣&#xff0c;跟着书会敲&#xff0c;离开就忘了。Android 大佬开发的各种框架、控件好像大部分都用了 Kotlin。看他们的源码&#xff0c;理解…