一、char和int
int -> char:
int n = x;
char ch = (char)(n + '0');
这样打印出来ch的值为x,而不是ascii码值;(0<=n<=9).
char->int:
char c = '9';
int n = int(ch) - int('0');
此处c是‘0’至‘9’的数字字符
二、String数组 转 int数组
java8 stream API
int -> String
1.使用Arrays.stream()或IntStream.of() 方法。
2. 将Stream的每个元素转换为String使用IntStream.mapToObj()函数。
3. 使⽤返回⼀个String包含此流元素的数组Stream.toArray()。
String -> int
String [] str={"1","2","3"}; int [] num=new int[str.length]; for(int i=0;i<num.length;i++){ num[i]=Integer.parseInt(str[i]); }
三、String数组 转 char数组
String->char
1.使用String.charAt(index)
(返回值为char)可以得到String中某一指定位置的char。
2. 使用String.toCharArray()
(返回值为char[])可以得到将包含整个String的char
char->String
1. String s = String.valueOf('c'); //效率最高的方法
2. String s = String.valueOf(new char[]{'c'}); //将一个char数组转换成String
3. String s = Character.toString('c');
// Character.toString(char)方法实际上直接返回String.valueOf(char)
4. String s = new Character('c').toString();
5. String s = "" + 'c';
// 虽然这个方法很简单,但这是效率最低的方法
// Java中的String Object的值实际上是不可变的,是一个final的变量。
// 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
// 而Java对使用+运算符处理String相加进行了方法重载。
// 字符串直接相加连接实际上调用了如下方法:
// new StringBuilder().append("").append('c').toString();
6. String s = new String(new char[]{'c'});
四、ArrayList转int数组
对象数组:
ArrayList<Integer> list = new ArrayList<>();
Object[] objects = list.toArray();
Integer[] integers = list.toArray(new Integer[0]);
基本类型数组:
ArrayList<Integer> list = new ArrayList<>();
int[] ints = list.stream().mapToInt(x -> x).toArray();
//通过stream()方法拿到流对象,mapToInt拿到Int流对象,就可以toArray返回int数组了
//如果这里式String泛型要转为int数组的话,就要调用Integer.parseInt()方法,lambda写法:mapToInt(Integer::parseInt)