基本数据类型之间的转换

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

自动类型转换发生在从低级类型向高级类型转换时,不需要进行任何显式操作。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中的数据类型转换涉及多个方面,需要根据具体情况选择合适的方法。

posted @   文三岁  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示