自动类型转换(隐式转换)
自动类型转换发生在从低级类型向高级类型转换时,不需要进行任何显式操作。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()
方法(对于int
、long
等,可以使用Integer.toString()
、Long.toString()
等)。 - 使用
String.valueOf()
方法。
String转基本数据类型
- 使用包装类的
parseXxx(String s)
静态方法(如Integer.parseInt(String s)
、Double.parseDouble(String s)
等)。注意,String字符串里的内容必须符合要转换的类型,否则会抛出NumberFormatException
。
数组与String之间的转换
数组转String
- 遍历数组,使用
StringBuffer
或StringBuilder
的append()
方法拼接元素,然后调用toString()
方法。 - 使用
Arrays.toString(array)
方法(注意,这会包含方括号和逗号)。 - 使用
String.join(delimiter, array)
方法(Java 8+),可以指定分隔符。
String转数组
- 使用
String
的split(regex)
方法按分隔符分割字符串,然后转换为所需的数组类型(可能需要遍历和转换)。
集合与String之间的转换
集合转String
- 使用
Collection
的toString()
方法(会包含方括号和逗号)。 - 遍历集合,使用
StringBuffer
或StringBuilder
拼接元素,然后调用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+)进行转换。
集合转数组
- 使用
Collection
的toArray(T[] a)
方法,需要传入一个类型匹配的数组作为参数(通常传入一个空数组)。 - 对于基本数据类型的集合,可以使用Stream API(Java 8+)进行转换,如
list.stream().mapToInt(Integer::intValue).toArray()
。
综上所述,Java中的数据类型转换涉及多个方面,需要根据具体情况选择合适的方法。
标签:基本,类型转换,转换,String,数据类型,数组,使用 From: https://www.cnblogs.com/jihailong/p/18358533