基本数据类型的转换 (基础完整篇)

在这里插入图片描述

基本数据类型间的转换包括 自动类型转换强制类型转换 ,本文还讲了基本数据类型和String类型间的转换,这些是学习的重点,掌握这些之后还有其他想法或疑问,都可以自己尝试用代码验证结果,总之多实践比死记硬背更有用。🤨🤨

文章目录

  • 1、自动类型转换
    • 1.1、自动类型转换介绍
    • 1.2、自动类型转换细节
  • 2、强制类型转换
    • 2.1、强制类型转换介绍
    • 2.2、强制类型转换细节
  • 3、基本数据类型转换练习
  • 4、基本数据类型和String类型的转换
    • 4.1、基本数据类型 ---> String
    • 4.2、String ---> 基本数据类型
    • 4.3、将字符串转换为字符 ---> 即把字符串的第一个字符得到
    • 4.4、基本数据类型和String类型转换的细节


1、自动类型转换

1.1、自动类型转换介绍

在这里插入图片描述

可以跨精度,只要是精度小的数据类型就可以自动转换为精度大的数据类型

🦉🦉代码演示:
在这里插入图片描述


1.2、自动类型转换细节

🐮🐮有 多种类型的数据 混合运算时,系统首先自动将所有数据转换成 容量最大 的那种数据类型,然后再进行运算:

在这里插入图片描述

🐮🐮当我们把精度(容量)大数据类型赋值给精度(容量)小的数据类型,就会报错,反之就会进行自动类型转换:

int n1 = 1.1 //错 double =》 int

🐮🐮(byte,short)和char之间不会相互自动转换:

在这里插入图片描述

  • 当把具体数赋给某数据类型时,系统会先判断该数是否在此数据类型的范围内,若是则语法正确,否则报错。
  • 当把变量赋值给某数据类型时,系统则会先判断该变量的数据类型,若能进行自动类型转换则语法正确,否则报错。

🐮🐮(byte,short,char)它们三者可以计算,在计算时首先转换为int类型;

byte b2 = 1;
byte b3 = 2;
short s1 = 1;
//short s2 = b2 + s1;//错 , b2 + s1 => int
int s2 = b2 + s1;//对 , b2 + s1 => int
//byte b4 = b2 + b3;//错 , b2 + b3 => int

ps : 只要是三者中的一个类型进行计算,结果都会转换为int。

🐮🐮boolean不参与自动转换:

boolean pass = true;
//int num100 = pass;//boolean不参与自动转换

🐮🐮自动提升原则:表达式结果的类型 自动提升为 操作数中最大的类型:

byte n1 = 1;
short n2 = 10;
int n3 = 100;
float n4 = 5.1f;double n5 = n1 + n2 + n3 + n4;// float--> double √
int n5 = n1 + n2 + n3 + n4;// float--> int ×
float n5 = n1 + n2 + n3 + n4;// float--> float √

2、强制类型转换

2.1、强制类型转换介绍

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时需加上强制转换符( ),但会造成精度降低或溢出,所以使用时要格外小心。

🚚🚚代码演示:

在这里插入图片描述

对于n1,如果对精度有要求时,精度的损失将会影响项目。
对于b1,2000远超了byte的数据范围以至于数据溢出,导致运行后的结果不可预估。


2.2、强制类型转换细节

  • 当将容量大的数据类型转换为容量小的数据类型,需要使用强制转换。
  • byte、short和char在进行运算时,会当做int类型处理。关于这条的理解可以看基本数据类型讲解浮点类型使用细节部分。

☘️☘️强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级:

//int x = (int)10 * 3.5 + 6 * 1.5;//编译错误:double -> int
int x = (int)(10 * 3.5 + 6 * 1.5);//(int)44.0 -> 44
System.out.println(x);//44

☘️☘️char类型可以保存int型常量,但不可以保存int型变量,需要强转:

char c1 = 100; //ok
int m = 100; //ok
//char c2 = m; //错误
char c3 = (char)m; //ok
System.out.println(c3); //100对应的字符《==》d字符

3、基本数据类型转换练习

//判断是否能够通过编译:
1short s = 12;//ok
s = s - 9;//错误 int->short
2、byte b = 10;//ok
b = b + 11//错误 int->byte
b = (byte)(b + 11);//ok 强转
3char c = 'a';//ok
int i = 10;//ok
float d = .314F;//ok
double result = c + i + d;//ok float->double
4、byte b = 16;//ok
short s = 14;//ok
short t = s + b;//错误 int->short

4、基本数据类型和String类型的转换

4.1、基本数据类型 —> String

将基本类型的值+"" 即可。

在这里插入图片描述


4.2、String —> 基本数据类型

通过基本类型的包装类调用parsexxx方法即可,其中parse 代表 [解析]。

在这里插入图片描述


4.3、将字符串转换为字符 —> 即把字符串的第一个字符得到

System.out.println(s5.charAt(0)); // 得到字符'1',s5:"123"
//s5.charAt(0)解读:得到字符串s5的第 0 位字符(即第一个字符'1',国外是从0开始数)

4.4、基本数据类型和String类型转换的细节

  • 当 基本数据类型 转换为 String类型 时不会抛出格式异常的错误。

  • 当 String类型 转换为 基本数据类型 时,要确保String类型能转换为有效的数据类型,如"123"可以转换为整数,而"hello"转换为整数时将会抛出格式异常的错误。

  • 如果格式不正确,就会抛出异常,程序就会终止。

public class StringToBasciDetail(){public static void main(String[] args){String str1 = "123";int num1 = Integer.parseInt(str1);System.out.println(num); //123 √String str2 = "hello";int num2 = Integer.parseInt(str2);System.out.println(num); //× 格式异常 系统不知道怎么将"hello"转换为整数}
}

程序异常如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1618886.html

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

相关文章

真正的GHOXPGHOST纯净版“觉山孤鹤GHOSTXP纯净版”五一奉献

真正的GHOXPGHOST纯净版“觉山孤鹤GHOSTXP纯净版”五一奉献 描述:一、光盘DOS下启动图 图片: 描述:二、安装效果图 图片: 描述:三、进入桌面 图片: 描述:四、光盘WIN下启动图 图片: …

木蚂蚁软件光盘 V2.0 2008元旦贺岁版

木蚂蚁软件光盘 V2.0 2008元旦贺岁版木蚂蚁软件光盘 V2.0 ★2008元旦贺岁★『木蚂蚁wuhanqi出品--->装机必备』 软件大小:719MB软件类别:国产软件/系统工具软件性质:木蚂蚁wuhanqi特别版 软件授权:免费版 软件语言&#xff1a…

数据结构--队列与循环队列

队列 队列是什么,先联想一下队,排队先来的人排前面先出,后来的人排后面后出;队列的性质也一样,先进队列的数据先出,后进队列的后出;就像图一的样子: 图1 如图1,1号元素是…

【Flutter】Flutter 使用 toggle_switch 实现切换按钮

【Flutter】Flutter 使用 toggle_switch 实现切换按钮 文章目录 一、前言二、安装和基本使用三、Toggle Switch 的基础示例四、Toggle Switch 的高级用法五、实际业务中的完整示例六、总结 一、前言 你好,我是小雨青年,今天我要为大家介绍一个非常实用的…

node.js安装好后测试报错解决

node.js的版本是18.X.X node.js安装好后,执行命令: npm install express -g 报错!!! 解决办法: 看报错是由于权限不够, 所以打开cmd时,以管理员的方式打开 然后再执行命令就OK了…

dataframe更改数据的方法(超级简单易懂!!!)

::::插入数据 import pandas as pd import numpy as npdfpd.DataFrame(data[[zs,18,1],[ls,19,1],[ww,17,2]],index[stu0,stu1,stu2],columns[name,age,group]) df 更改单个数据的方法 取出数据后直接赋值(一般用不到…

怎样把PDF转换成WORD简单有效

其实文件格式转换的方法大同小异。无非就是选择格式,添加文件,开始转换,但是就这简单的几步,操作不好也会造成转换失败,下面小编以最常见的pdf转换成word格式为例,给大家详细说说pdf转换成word需要注意的地…

如何將人臉變漂亮(一)

利用 mediapipe 進行處理 規劃 1.先把人臉辨識,然後取出框框 2.把框框內的人臉,進行美容 -高反差保留 (1)曝光度調整 (2)綠色與藍色,疊加 (3)YUCIHighPassSkinSmoothingMaskBoost -調整圖像亮度 -混合 3.把人臉的嘴巴,進行塗紅 4.…

pdf转word文档怎么转?看完这篇你就会了

随着数字化时代的到来,电子文档的使用越来越普遍。无论是在学校里撰写论文、在公司里编辑报告,还是在日常生活中收到合同或简历,我们都可能遇到需要将pdf文件转换为word格式的情况。这时,一款高效且易用的pdf转word软件便成为我们…

那种单眼皮小眼睛塌鼻梁厚嘴唇但还挺好看的女生

那种单眼皮小眼睛塌鼻梁厚嘴唇但还挺好看的女生 Data Dance Data Dance大数据采集分析软件,大数据技术经典算法 只有不符合大众审美的人,所以每个人都是美的!你们通过这篇文章认识了照片上的我,但如果你们在现实生活中见到我&…

pdf如何转换成word格式最简单

当我们遇到难题的时候,应该积极地寻找方法去解决问题,特别是工作中,只有遇到问题解决问题才能更好的完成工作,拿文件转换问题来说,遇到难转换的文件格式,我们只要积极寻找解决方法还是可以轻松完成转换的。…

pdf怎么转换成word 文档?这几个小妙招别错过

pdf怎么转换成word 文档?想必大家都经常遇到这样的问题:在网上下载了一个 pdf 文件,但是突然需要对其中的文字进行编辑,但是 pdf 文件却不支持直接编辑,这时就需要将 pdf 文件转换成 word 文档,进行编辑。下…

pdf转word文档怎么转?手把手教你转换

随着数字化时代的到来,电子文档在我们的生活和工作中扮演着越来越重要的角色。尤其是pdf格式的文件,由于其可靠性和跨平台的特性,成为了广泛使用的标准文档格式之一。然而,当我们需要对pdf文件进行编辑时,尤其是将其转…

Pandas Dataframe Drop函数的用法

Pandas Dataframe Drop函数的用法 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop.html

怎么把照片变年轻?这两个照片变年轻小妙招教给你

怎么把照片变年轻呢?随着年龄的增长,许多人会感到自己不再年轻,失去了曾经的美貌和活力。通过将照片变年轻,你可以重新体验过去的感觉,回忆起年轻时的美好时光,仿佛回到了过去,让我们感受到那段…

单眼皮眼妆学起来 打造电眼只需六步

很多内双或者单眼皮的MM们都很不自信,觉得自己的眼睛长得不够好看,对于单眼皮怎么画眼线一无所知,所以就不愿意化妆,而且就算化妆也得贴个双眼皮贴,看起来很不自然。其实不一定,现在国际上都爱单眼皮呢!今天&#xff0…

单眼皮比双眼皮高等?

郑昀 20091012 看到一条 玩聚RT 上榜消息:“ RT lookon RT Klaith: 交大医学院的某主任教授曾经和我们吹牛,说单眼皮的人比双眼皮的高等,因为除人以外的动物都只有双眼皮。22次锐推 | 最早发布于2009-10-11 ”。 果真如此? 1、狗…

Docker网络-探索容器网络如何相互通信

当今世界,企业热衷于容器化,这需要强大的网络技能来正确配置容器架构,因此引入了 Docker Networking 的概念。Docker 是一种容器化平台,允许您在独立、轻量级的容器中运行应用程序和服务。Docker 提供了一套强大的网络功能&#x…

Redis 10 大数据类型

1. which 10 1. redis字符串 2. redis 列表 3. redis哈希表 4. redis集合 5. redis有序集合 6. redis地理空间 7. redis基数统计 8. redis位图 9. redis位域 10. redis流 2. 获取redis常见操作指令 官网英文:https://redis.io/commands 官网中文:https:/…

python+mysql+前后端分离国内职位数据分析(源码+文档+指导)

系统阐述的是使用国内python职位数据分析系统的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 Flask框架和MySql数据库技术搭建系统的整体…