Java 数据类型转化

Java类型转化

基本数据类型自动类型转换

基本数据类型之间的运算规则
前提:这里讨论7种基本数据类型变量间的运算,不包含布尔类型。

image

1.string是class类型
2.定义long型变量,必须以”l”或”L”结尾
3.定义float型变量,变量要以”f”或”F”结尾
4.char型初始化要有值,单引号括住

自动类型提升

byte/short/char -> int -> long -> float->double
当byte/short/char三种类型(同类型也是)做运算时,结果至少用int接收
java在做运算时,如果操作数均在int范围内,那么一律在int的空间内运算

强制类型转换 - 自动类型提升的逆运算

(强制转换的类型)xx

特殊情况

情况1:long l = 12315465111 会把12315465111当作int型(此时会编译失败因为超出int的范围),类型提升到long型
情况2: 浮点型默认的是double,所以float型后面一定需要添加f/F

int与long

将long型转化为int型

long   a = 10;
int b = (int)a;

将Long型(包装类)转换为int型

Long a = 10;
int b=a.intValue();

将int型转化为long型

int a = 10;
long b = a;

将Integer型(包装类)转化为long型

int a = 10;
Long b = a.longValue();

int类型与String类型

int类型转换成String类型

方法1:+ 拼接空串

String str = n + "";

方法2:String.valueof()

value值为其他类型

String s = String.valueOf(value);

String类型转换成int类型

方法1:Integer.parseInt(str)

Integer.parseInt(str,[进制])
说明
目的是输出一个十进制数
参数
str表示输入的字符串
参数2表示当前的str是几进制,默认是十进制

扩展:包装类.parseXxx(String str)

String转换为其他类型

byte b = Byte.parseByte( str ); 
short t = Short.parseShort( str ); 
int i = Integer.parseInt( str ); 
long l = Long.parseLong( str ); 
Float f = Float.parseFloat( str ); 
Double d = Double.parseDouble( str );

char数组类型与String

String转换为char[]类型

方法1:str.toCharArray()

char[] stringToChar=str.toCharArray();

Char[] 类型转换成String

方法1:String的构造器方法

String str = new String(arr);

集合Collection与数组

coll转换成数组

方法1:coll.toArray()

toArray有两个重载的方法:
1.list.toArray():将list直接转为Object[] 数组;
2.list.toArray(T[] a):将list转化为你所需要类型的数组。

案例:转换成二维数组

return list.toArray(new int[list.size()][]);

数组转换成List

方法1:Arrays.asList(arr)

使用场景
生成一个不可更改的list

说明
1.该方法适用于对象型数据的数组(String、Integer...)
2.该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)
3.该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新
4.不支持add()、remove()、clear()等方法。用此方法得到的List的长度是不可改变的

List arr = Arrays.asList(new int[]{123,456})会把new int[]{123,456}整体看成一个元素,基本数据类型数组会被看成一个整体。
可以写成 List arr = Arrays.asList(123,456)

posted @ 2021-08-09 22:07  rananie  阅读(178)  评论(0编辑  收藏  举报