首页 > 其他分享 >基本数据类型之间的转换

基本数据类型之间的转换

时间:2024-08-14 11:31:09浏览次数:7  
标签:基本 类型转换 转换 String 数据类型 数组 使用

自动类型转换(隐式转换)

自动类型转换发生在从低级类型向高级类型转换时,不需要进行任何显式操作。Java中的基本数据类型按照精度从低到高的顺序是:byte、short、char(在运算中视为int)、int、long、float、double。转换规则如下:

  • 精度或可表示范围小的类型自动转换成精度或可表示范围大的类型。
  • 当byte、short、char进行运算时,它们会首先被提升为int类型,然后再进行运算。
  • boolean类型不能与其他基本数据类型进行转换。

强制类型转换(显式转换)

  • 强制类型转换发生在将高级类型转换为低级类型时,需要使用强制类型转换运算符()。这种转换可能会导致数据精度丢失或溢出。转换格式如下:
java复制代码

(类型名)变量名

例如,将double类型转换为int类型:

double d = 123.456;  
int i = (int)d; // i 的值为 123

引用类型与基本数据类型之间的转换

1. 基本数据类型与String之间的转换

基本数据类型转String

  • 使用加号+与空字符串拼接。
  • 使用包装类的toString()方法(对于intlong等,可以使用Integer.toString()Long.toString()等)。
  • 使用String.valueOf()方法。

String转基本数据类型

  • 使用包装类的parseXxx(String s)静态方法(如Integer.parseInt(String s)Double.parseDouble(String s)等)。注意,String字符串里的内容必须符合要转换的类型,否则会抛出NumberFormatException

数组与String之间的转换

数组转String

  • 遍历数组,使用StringBufferStringBuilderappend()方法拼接元素,然后调用toString()方法。
  • 使用Arrays.toString(array)方法(注意,这会包含方括号和逗号)。
  • 使用String.join(delimiter, array)方法(Java 8+),可以指定分隔符。

String转数组

  • 使用Stringsplit(regex)方法按分隔符分割字符串,然后转换为所需的数组类型(可能需要遍历和转换)。

集合与String之间的转换

集合转String

  • 使用CollectiontoString()方法(会包含方括号和逗号)。
  • 遍历集合,使用StringBufferStringBuilder拼接元素,然后调用toString()方法。
  • 使用String.join(delimiter, Collection<?> c)方法(Java 8+),可以指定分隔符。

String转集合

  • 使用Arrays.asList(String[].split(regex))(注意,这种方法返回的List是固定的,不支持增删操作)。
  • 将字符串分割为数组后,再转换为集合(如new ArrayList<>(Arrays.asList(splitResult)))。

数组与集合之间的转换

数组转集合

  • 使用Arrays.asList(T... a)方法,但注意这个方法返回的List是固定大小的,不支持增删操作。
  • 对于基本数据类型的数组,可以先转换为对应的包装类型数组,再使用Arrays.asList(),或者使用Stream API(Java 8+)进行转换。

集合转数组

  • 使用CollectiontoArray(T[] a)方法,需要传入一个类型匹配的数组作为参数(通常传入一个空数组)。
  • 对于基本数据类型的集合,可以使用Stream API(Java 8+)进行转换,如list.stream().mapToInt(Integer::intValue).toArray()

综上所述,Java中的数据类型转换涉及多个方面,需要根据具体情况选择合适的方法。

标签:基本,类型转换,转换,String,数据类型,数组,使用
From: https://www.cnblogs.com/jihailong/p/18358533

相关文章

  • Spark MLlib 特征工程系列—特征转换StringIndexer和IndexToString
    SparkMLlib特征工程系列—特征转换StringIndexer和IndexToStringStringIndexer是SparkMLlib中的一个特征转换器,用于将类别型(即字符串)特征转换为数值型索引。这个转换器对于处理包含类别型数据的机器学习任务非常有用,因为大多数机器学习算法要求输入的特征是数值型的......
  • C语言---数据类型和变量
    1.数据类型介绍  C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作。2.内置类型1.字符型char  ......
  • [Zebra] 分片路由和寻找分片键值的基本过程
    路由规则匹配分库分表路由规则是表+字段的维度,首先要将sql中的表识别出来,然后和规则进行匹配,然后才能根据规则确定分库分表是用哪个字段、按照什么分片算法,比如userId8库128表;zebra中DefaultShardRouter#router路由器首先进行sql解析SQLParsedResultparsedResul......
  • MySQL数据库——数据库的数据类型(一)
    四、数据类型1.数据类型分类分类数据类型说明数值类型BIT(M)位类型。指定位数,默认值1,范围1-64TINYINT[UNSIGNED]带符号的范围-128127,无符号范围0255.默认有符号BOOL使用0和1表示真和假SMALLINT[UNSIGNED]带符号是-2^15次方到2^15-1,无符号是2^16-1IN......
  • 【JAVA_Mysql】JAVA连接Mysql基本步骤
    ......
  • UEFI Shell 的基本操作和应用场景,适合初学者了解和入门 UEFI Shell 的使用。 UEFI She
    UEFIShell是一种提供命令行接口的环境,用于与UEFI固件进行交互。UEFI(统一可扩展固件接口)是计算机启动过程中的一种固件接口,替代了传统的BIOS。UEFIShell提供了一种方式,让用户在启动操作系统之前进行系统管理和配置。主要特点命令行界面:UEFIShell提供一个类似于操作......
  • Mediapipe + KNN检测人体跌倒基本过程
    输入:图片、视频、摄像头等预处理:GBR2RGB、缩放、归一化等检测:加载训练模型BlazePose检测是否有人若有人,则提取33个关键点注:BlazePose是一个基于MobileNet的训练模型。       MobileNet是一个基于CNN(卷积神经网络),专为移动设备和边缘计算的深度学习模型。  ......
  • 数据类型
    数据类型强类型语言:要求变量的使用严格符合规定,所有变量必须先定义后才能使用。弱类型语言:要求变量的使用符合规定。JSJava的数据类型分为两大类基本类型数值类boolean类:true和false占一位引用类型类、接口、数组1B(byte、字节)=8bit(位)publicclassDemo3{pu......
  • EtherNet/IP从站转Modbus-RTU协议转换网关(推荐收藏吖)
    作者的许多朋友均对如何实现EtherNet/IP网络和Modbus-RTU网络的连接互通感到十分困扰,现在为大家统一作出解释。事实上,捷米特YC-DPM-EIP此款设备能够完美地解决这一问题。接下来,作者将会给各位全面且详尽地阐述该设备的功能、参数以及配置的方法。1.产品功能捷米特JM-EIP-RTU......
  • EtherNet/IP从站转Modbus-RTU协议转换网关(推荐收藏吖)
    许多朋友都为如何达成EtherNet/IP网络和Modbus-RTU网络的连接互通而深感困扰,在此为大家统一进行解释。实际上,捷米特JM-EIP-RTU这款设备可以出色地解决这一难题。接下来,作者将会为各位全面、细致地讲解该设备的功能、参数以及配置的方式。捷米特JM-EIP-RTU是自主研发的一款Ethe......