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://xiahunao.cn/news/2779685.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS 状态管理装饰器 Observed与ObjectLink 处理嵌套对象/对象数组 结构双向绑定

本文 我们还是来说 两个 harmonyos 状态管理的装饰器 Observed与ObjectLink 他们是用于 嵌套对象 或者 以对象类型为数组元素 的数据结构 做双向同步的 之前 我们说过的 state和link 都无法捕捉到 这两种数据内部结构的变化 这里 我们模拟一个类数据结构 class Person{name:…

SpringCloud-微服务概述、SpringCloud入门概述、服务提供与消费

1.学习前言 1.1 学习前提 熟练使用SpringBoot 微服务快速开发框架了解过Dubbo Zookeeper 分布式基础电脑配置内存不低于8G 1.2 文章大纲 Spring Cloud 五大组件 服务注册与发现——Netflix Eureka负载均衡&#xff1a; ​ 客户端负载均衡——Netflix Ribbon ​ 服务端负载…

分享88个表单按钮JS特效,总有一款适合您

分享88个表单按钮JS特效&#xff0c;总有一款适合您 88个表单按钮JS特效下载链接&#xff1a;https://pan.baidu.com/s/1v-qcl8bv2kxZ8a98Xo9UAg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

Java学习第十一节之命令行传参和断更原因

package method;public class Demo03 {public static void main(String[] args) {//args.length数组长度for (int i 0; i < args.length; i) {System.out.println("args[" i "]:"args[i]);}}}为什么没更新了&#xff1f; 家里有长辈生病了不好在医院照…

FreeRTOS.chg脚本出现意外状态

PE代码生成的时候遇到这么个问题 警报如下 Description Resource Path Location Type ERROR: Unexpected status of script: Beans\FreeRTOS\FreeRTOS.chg, please contact Freescale support. M18_BMCU FreeRTOS Processor Expert Problem 意思就是这个脚本文件有问题&…

【ES6】模块化

nodejs遵循了CommonJs的模块化规范 导入 require() 导出 module.exports 模块化的好处&#xff1a; 模块化可以避免命名冲突的问题大家都遵循同样的模块化写代码&#xff0c;降低了沟通的成本&#xff0c;极大方便了各个模块之间的相互调用需要啥模块&#xff0c;调用就行 …

【复现】大华 DSS SQL 注入漏洞_46

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 大华DSS是大华的大型监控管理应用平台&#xff0c;支持几乎所有涉及监控等方面的操作&#xff0c;支持多级跨平台联网等操作。 可…

「数据结构」二叉搜索树1:实现BST

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;Java数据结构 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 实现BST &#x1f349;二叉搜索树的性质&#x1f349;实现二叉搜索树&#x1f34c;插入&#x1f34c;查找&#x1f34c;删除 &am…

Linux防火墙开放

记录一次问题 写的网络服务无法通信 代码没问题&#xff0c;IP绑定、端口绑定没问题&#xff0c;就是无法进行通信&#xff0c;这里要分2步走。 服务器控制台开放 进入防火墙 添加规则&#xff0c;这里以开放udp的8899端口为例 这里在服务器后台就已经开放了&#xff0c;但此时…

问题:3【单选题】实现职业理想的一般步骤是()。 #媒体#媒体

问题&#xff1a;3【单选题】实现职业理想的一般步骤是()。 A、创业-立业-择业 B、择业-创业-立业 C、择业-立业-创业 D、立业-择业-创业 参考答案如图所示

LeetCode.144. 二叉树的前序遍历

题目 144. 二叉树的前序遍历 分析 这道题目是比较基础的题目&#xff0c;我们首先要知道二叉树的前序遍历是什么&#xff1f; 就是【根 左 右】 的顺序&#xff0c;然后利用递归的思想&#xff0c;就可以得到这道题的答案&#xff0c;任何的递归都可以采用 栈 的结构来实现…

小兔鲜项目网页版

头部模块 <!-- 头部模块 --><header><!-- 快捷菜单模块 --><div class"xtx-shortcut"><!-- 版心的盒子 --><nav class"container"><ul class"fr"><li><a href"#">请先登录<…

Linux——进程池(管道)

经过了管道的介绍之后&#xff0c;我们可以实现了进程间通信&#xff0c;现在我就来简单介 绍一下管道的应用场景——进程池。1. 引入 在我们的编码过程中&#xff0c;不乏会听到&#xff0c;内存池&#xff0c;进程池&#xff0c;空间配置器等等名词&#xff0c;这些是用来干…

专业140+总分410+华南理工大学811信号与系统考研经验华工电子信息与通信,真题,大纲,参考书。

23考研已经落幕&#xff0c;我也成功的上岸华工&#xff0c;回首这一年多的历程&#xff0c;也是有一些经验想和大家分享一下。 首先说一下个人情况&#xff0c;本科211&#xff0c;初试成绩400分。专业课140。 整体时间安排 对于考研&#xff0c;很重要的一环就是时间安排&…

AJAX——URL查询参数

1 URL查询参数 定义&#xff1a;浏览器提供给服务器的额外信息&#xff0c;让服务器返回浏览器想要的数据 语法&#xff1a;http://xxxx.com/xxx/xxx?参数名1值1 & 参数名2值2 2 axios-查询参数 语法&#xff1a;使用axios提供的 params 选项 注意&#xff1a;axios在…

微信小程序的了解和使用

微信小程序 微信小程序的项目组成 pages 文件夹 用于存放所有的小程序页面 logs 文件夹 用于存放所有的日志文件 utils 文件夹 用于存放工具性质的模块 js app.js 小程序的入口文件 app.json 小程序的全局配置文件 app.wxss 全局样式文件 project.config.json 项目配置文…

Docker 有哪些常用的命令和操作?

Docker是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器或Windows机器上&#xff0c;也可以实现虚拟化。以下是Docker的一些常用命令和操作&#xff1a; 安装和启动Docker 要使用Do…

EMC学习笔记(二十四)降低EMI的PCB设计指南(四)

降低EMI的PCB设计指南&#xff08;四&#xff09; 1.电路板分区2.信号走线2.1 电容和电感串扰2.2 天线2.3 端接和传输线2.4输入端的阻抗匹配 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 1.电路板分区 电路板分区与电路板平面规划具有相同的基本含义&#x…

RabbitMQ的延迟队列实现[死信队列](笔记一)

关于死信队列的使用场景不再强调&#xff0c;只针对服务端配置 注意&#xff1a; 本文只针对实现死信队列的rabbitMQ基本配置步骤进行阐述和实现 目录 1、docker-compose 安装rabbitMq2、查看对应的版本及插件下载3、安装插件和检测 1、docker-compose 安装rabbitMq a、使用d…

flask+python高校学生综合测评管理系统 phl8b

系统包括管理员、教师和学生三个角色&#xff1b; 。通过研究&#xff0c;以MySQL为后端数据库&#xff0c;以python为前端技术&#xff0c;以pycharm为开发平台&#xff0c;采用vue架构&#xff0c;建立一个提供个人中心、学生管理、教师管理、课程类型管理、课程信息管理、学…