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.mzph.cn/news/677323.shtml

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

相关文章

国产光耦2024:发展机遇与挑战全面解析

随着科技的不断进步&#xff0c;国产光耦在2024年正面临着前所未有的机遇与挑战。本文将深入分析国产光耦行业的发展现状&#xff0c;揭示其在技术创新、市场需求等方面的机遇和挑战。 国产光耦技术创新的机遇&#xff1a; 国产光耦作为光电器件的重要组成部分&#xff0c;其技…

Python操作MySQL基础

除了使用图形化工具以外&#xff0c;我们也可以使用编程语言来执行SQL从而操作数据库。在Python中&#xff0c;使用第三方库: pymysql来完成对MySQL数据库的操作。 安装第三方库pymysql 使用命令行,进入cmd&#xff0c;输入命令pip install pymysql. 创建到MySQL的数据库连接…

CSS高级技巧

一、 精灵图 1.1 为什么需要精灵图&#xff1f; 1.2 精灵图&#xff08;sprites&#xff09;的使用 二、 字体图标 2.1 字体图标的产生 2.2 字体图标的优点 2.3 字体图标的下载 icomoom字库 http://icomoon.io 阿里iconfont字库 http://www.iconfont.cn/ 2.4 字体图标的引用…

Spring Boot 自定义指标

Spring Boot 自定义指标 阅读本文需要对一些前置技术有所了解,下面列出的一些前置技术是必须要了解的。 Prometheus:这是一个时序数据库,我们的指标数据一般保存在这个数据库中。Grafana:借助Grafana可以将Prometheus中的数据以图表的方式展示出来。Micrometer:是一个用于…

【EAI 013】BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning

论文标题&#xff1a;BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning 论文作者&#xff1a;Eric Jang, Alex Irpan, Mohi Khansari, Daniel Kappler, Frederik Ebert, Corey Lynch, Sergey Levine, Chelsea Finn 论文原文&#xff1a;https://arxiv.org…

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

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

python基础教程九 抽象四(函数参数终)

文章预览&#xff1a; 1. 分配参数2. 作用域3. 递归1. 俩个经典案例&#xff1a;阶层和幂2. 递归的意义1. 递归二分查找1. 二分查找的条件1. 二分查找的意义 1. 分配参数 前面介绍了如何将参数收集到元组和字典当中&#xff0c;但同样的俩个运算符&#xff0c;也可以执行相反的…

新版MQL语言程序设计:策略模式的原理、应用及代码实现

文章目录 一、什么是策略模式二、策略模式的实现原理三、策略模式的应用场景四、策略模式的代码实现 一、什么是策略模式 策略模式是一种行为型设计模式&#xff0c;它允许在运行时根据不同的情况选择算法的行为。该模式将算法封装成独立的类&#xff0c;并使它们可以互相替换&…

web3之跨链合成资产交易协议LINA (Linear)

什么是lina 官方网站&#xff1a;https://linear.finance/ Website: https://linera.io Discord: https://discord.gg/linera Medium: https://medium.com/linera Developer Docs: https://linera.dev Whitepaper: https://linera.io/whitepaper Linear Finance是首个跨链兼容…

会声会影绿幕抠图操作方法 会声会影绿幕抠图有绿色残边 绿幕抠图视频有绿边怎么处理 抖音怎么剪辑视频 视频剪辑软件推荐

科幻片里真的存在怪兽吗&#xff1f;外太空的画面是直接将演员放入太空拍摄的吗?其实这些不切实际的画面是通过绿幕拍摄实现的。你只需要在绿幕前拍一段太空漫步的视频&#xff0c;再利用会声会影的抠图功能就能实现&#xff01;如果你还不会绿幕抠图&#xff0c;我今天就手把…

《杨绛传:生活不易,保持优雅》读书摘录

目录 书简介 作者成就 书中内容摘录 良好的家世背景&#xff0c;书香门第为求学打基础 求学相关 念大学 清华研究生 自费英国留学 法国留学自学文学 战乱时期回国 当校长 当小学老师 创造话剧 支持钱锺书写《围城》 出任震旦女子文理学院的教授 接受清华大学的…

C/C++ 关于 SHA256 的使用

如下图&#xff0c;是关于 SHA256 使用的一个经典例子 #include <openssl/sha.h> #include <stdio.h> #include <string.h>int main() {char data[] "Hello, world!"; // 要计算哈希的数据unsigned char hash[SHA256_DIGEST_LENGTH]; // 用于存储…

扑克牌大小(模拟)

题目 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String s sc.nextLine();String[] ss s.split("-");StringBuffer s1 new StringBuffer();StringBuffer s2 new StringBuffer(…

C++函数对象-运算符函数对象 - 逻辑运算 - 实现 x y 的函数对象 (std::logical_and)

任何定义了函数调用操作符的对象都是函数对象。C 支持创建、操作新的函数对象&#xff0c;同时也提供了许多内置的函数对象。 运算符函数对象 C 针对常用的算术和逻辑运算定义了很多函数对象&#xff1a; 逻辑运算 实现 x && y 的函数对象 std::logical_and templa…

关于基因结构注释,我的一些折腾和思考

我在2018年,写过一篇《如何对基因组序列进行注释》,简书上有4万多人阅读,CSDN上有8万多人阅读,说明确实有不少人有相关的需求。我自己也琢磨了一段时间,刚好过年回家,简单的梳理一下。 最初的时候,我的思路就是EvidenceModeler(后面简称EVM)的思路,训练不同从头预测…

微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 目录 前言 通过代码实现限流 定义资源 通过代码定义资源 通过注解方式定义资源 定义限流规则 通过…

nginx 配置404 页面

自己定义404 页面&#xff0c;通过 nginx 配置一下&#xff0c;重新定向 1. http 里面添加配置 proxy_intercept_errors on; fastcgi_intercept_errors on; 2. server 中添加配置 error_page 500 502 503 504 /404.html;error_page 404 /404.html;location /404.html…

cximage在vs2013下使用方法

1.下载源码 Cximage源码官网 CxImage download | SourceForge.net 下载最新版本 702版本 Download cximage702_full.7z (CxImage) 2.编译 vs2013打开CxImageFull_vc10.sln 这个源码版本是vc10的版本&#xff0c;所以vs2013会自动更新项目 因为cximage需要在后面的项目中使…

Nginx实战:2-日志配置

目录 前言 一、访问日志 1.字段配置 2.日志配置 3.默认配置 二、错误日志 前言 Nginx是一款高性能的HTTP和反向代理服务器&#xff0c;同时也是一个IMAP/POP3/SMTP服务器。在Nginx的日常使用中&#xff0c;日志记录是非常重要的一部分&#xff0c;它可以帮助我们监控服务…

2月7日《CS2》终于放大招,玩家激情再次被点燃

2024.2.7号&#xff0c;也就是昨天&#xff0c;V社终于放了大招&#xff0c;对CS2做了高达5个多G的大更新&#xff0c;这次更新内容还是比较多的&#xff0c;说几个比较有意思的点吧。 1、新武器箱&#xff1a;千瓦武器箱&#xff01; 全新的武器箱千瓦箱&#xff0c;能开出全…