java类型转换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、integer与String类型转换

方法一:Integer类的静态方法toString()

 Integer a = 3; String str = Integer.toString(a)

方法二:Integer类的成员方法toString()

Integer a = 3;
String str = a.toString();

方法三:String类的静态方法valueOf()

Integer a = 3;
String str = String.valueOf(a);

方法四:Integer类的静态方法valueof()

String a="3";
int n= Integer.valueOf(a);

二、字符串转换为数组

字符串转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型数组:

// An highlighted block
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]
		注意这里输出的是元素在数组中的存储结果,逗号代表分割,不是元素
	}
}

三、进制转换

10进制转化其他进制对应的方法,参数:n(原10进制数据),r(进制),返回值
10进制转2 进制Integer.toBinaryString(n);一个二进制字符串
10进制转8进制Integer.toOctalString(n);一个八进制字符串
10进制转16进制Integer.toHexString(n);一个16进制字符串
10进制转r进制Integer.toString(100, 16);一个r进制字符串

四、集合转数组

集合转换为类型一致的数组

使用集合转数组的方法,必须使用集合的 toArray(T[] array)方法,传入的是类型完全一致、长度为 0 的空数组。

List<String> list = new ArrayList<>(2);
list.add("guan");
list.add("bao");
String[] array = list.toArray(new String[0]);

注意:
直接使用 toArray 无参方法存在问题,此方法返回值只能是 Object[]类,若强转其它类型数组将出现ClassCastException 错误。

数组转换为类型一致的集合

场景:现在有一个int [] arr,希望转换为一个List。

 //  数组转换为类型一致的集合
    int [] arr1={1,2,3};
    //  注意:这里直接传入int [] 的数组,返回的List的泛型参数为 int [],而不是Integer
    List<int[]> list1 = Arrays.asList(arr1);


    Integer [] arr2={1,2,3};
    //  传入的参数类型为 Integer时,返回泛型参数就是Integer
    List<Integer> list2 = Arrays.asList(arr2);

注意:
很容易犯的一个错误就是,使用Arrays.asList()传入int [] 数组,然后用List < Integer>去接受,报错为类型不一致。

Arrays.asList()返回的实际上是一个不允许修改其结构的List(注:set(index,val)不属于改变结构的方法)。当前希望对返回的List进行修改结构操作时,按照下面的方式即可:

Integer [] arr2={1,2,3};
//  传入的参数类型为 Integer时,返回泛型参数就是Integer
List<Integer> list2 = Arrays.asList(arr2);

//新建一个java.util包下的List的实现类即可
List<Integer> list=new ArrayList<>(list2);
list.add(4);
System.out.println(list);
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值