Java中的各种类型转换

java学习笔记··持续更新中

1.java中的类型转换

类型转换都是小范围向大范围转换的,大范围往小范围转化需要用到强制转换,转换后的值会有所损失。
不同数据类型精度由小到大排列如下:char–>byte --> short --> int --> long --> float --> double
double精度16位,float精度7位

1.1强制类型转换

int a=123;
float b=(float)a;//int型转为float
//int型转为String
String c=String.valueOf(a);
String d=Integer.toString(a);
String e=a+"";
//i+""也就是一个int型的常量。+上个空的字符串,这里牵涉到了string的一些基础知识,
//string类型的+int在java中他会去这样理解是string类型的字符串跟上个int类型的i代表的字符串(先把i转换为string),
//int+string型就是先将int型的i转为string然后跟上后面的string

1.2将xx类型转换为字符串

由基本数据型态转换成String,String类别中已经提供了将基本数据型态转换成String的static方法,也就是String.valueOf()这个参数多载的方法,有以下几种
(1)String.valueOf(boolean b):将boolean变量b转换成字符串
(2)String.valueOf(char c)将量c转成字符串
(3)String.valueOf(char[]data)将char数组data转换成字符串
(4)String.valueOf(char[]data,int offset, int count):将char数组data中由data[offset]开始取cou
nt个元素转换成字符串
(5)String.valueOf(double d):将double变量d转换成字符串
(6)String.valueOf(float f):将float变量f转换成字符串
(7)String.valueOf(int i):将int变量i转换成字符串
(8)String.valueOf(long l):将long变量I转换成字符串
(9)String.valueOf(Object obj):将obj对象转换成字符串,等于obj.toString()

1.3进制转换

Integer类中有静态方法:
toBinaryString(int i):返回int变量的二进制表示的字符串。
toHexString(int i):返回int变量的16进制字符串。
toOctalString(int i):返回int变量的8进制表示字符串。

//以toBinaryString(int i)为例,将整数n转换成字符串(二进制)
int n=8;
String str = Integer.toBinaryString(n);
System.out.println(str);

2.其他类型和数组相互转换

2.1 List转数组

list集合这路指的是ArrayList

方法一:使用for循环

//要转换的list集合
List testList = new ArrayList(){{add(“aa”);add(“bb”);add(“cc”);}};

//初始化需要得到的数组
String[] array = new String[testList.size()];

//使用for循环得到数组
for(int i = 0; i < testList.size();i++){
    array[i] = testList.get(i);
}

//打印数组
for(int i = 0; i < array.length; i++){
    System.out.println(array[i]);
}

方法二:使用toArray()方法

//要转换的list集合
 List<String> testList = new ArrayList<String>(){{add("aa");add("bb");add("cc");}};

 //使用toArray(T[] a)方法
 String[] array2 = testList.toArray(new String[testList.size()]);

//打印该数组
for(int i = 0; i < array2.length; i++){
    System.out.println(array2[i]);
}

2.2 数组转List

方法一、使用for循环

//需要转换的数组
String[] arrays = new String[]{"aa","bb","cc"};

//初始化list
List<String> list = new ArrayList<String>();

//使用for循环转换为list
for(String str : arrays){
    list.add(str);
}

//打印得到的list
System.out.println(list);

方法二、使用asList()

ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arrays));

方法三、使用asList()

List<String> list = Arrays.asList(arrays);

2.3 字符串转数组

字符串转Char型数组:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "0,12,3";
		char arr[]=str.toCharArray();
		System.out.println(arr);//0,12,3
		注意这是输出的所有内容,不要理解成只将数字存到了数组,逗号是元素
		System.out.println(Arrays.toString(arr)); // [0, ,, 1, 2, ,, 3]
		char型数组一次只能存储一个元素
	}
}

字符串转String型数组:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "0,12,3";
		String arr[] = str.split("//,");  //以,为分割点依次向不同的数组下标里存放数据,逗号不会被存到数组里,0存到arr[0],12存到arr[1],3存到arr[2]
		String arr[] = str.split("");//将字符串中所有字符都存到数组里,0,12,3代表一个元素,存到arr[0]中
		System.out.println(Arrays.toString(arr));  //[0, 12, 3]
		注意这里输出的是元素在数组中的存储结果,逗号代表分割,不是元素
	}
}

3.与String的类型转换

3.1 Integer转String的三种方法

//方法一:Integer类的静态方法toString()
Integer a = 2;
String str = Integer.toString(a)

//方法二:Integer类的成员方法toString()
Integer a = 2;
String str = a.toString();

//方法三:String类的静态方法valueOf()
Integer a = 2;
String str = String.valueOf(a);

1、通过toString()方法,可以把整数(包括0)转化为字符串,但是Integer如果是null的话,就会报空指针异常。
2、String.valueOf(Object obj)可以把整型(包括0)转化为字符串,但是Integer如果是null的话,会转化为”null”。
3、当Integer是null的情况下,我们也希望String是null,上面的方法都没法做到。可以自己写一个方法,如下

public static String toString(Object obj) {
        return (obj == null) ? null : obj.toString();
    }

另外,Apache提供的ObjectUtils.identityToString(Object obj)也可以实现。但是ObjectUtils.toString(Object obj)不行,该方法会把null转化为“ ”。

3.2 String转Integer

当我们要把String转化为Integer时,一定要对String进行非空判断,否则很可能报空指针异常。

String str = "111";
Integer i = null;
if(str!=null){
     i = Integer.valueOf(str);
}

来自String与Integer相互转换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值