提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、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);