数据转换内容借鉴多篇文章,该博客仅用于学习记录,将持续更新
https://www.cnblogs.com/mike-mei/p/11110051.html
https://blog.csdn.net/ido1ok/article/details/84284703
目录
String类型
转换为char[]
String strStringType="dfad";
char[] ch;
ch = strStringType.toCharArray();
转换为String[]
String string = "a,b,c";
String [] stringArr= string.split(",");
转换为StringBuffer
方式一:利用构造函数
String str=“Hello World.”;
StringBuffer buffer = new StringBuffer(str);
方式二:调用append函数
String str=“Hello World.”;
StringBuffer buffer = new StringBuffer();
buffer.append(str);
转换为int[]
String table_id="1,2,3,11,20,100";
String[] strarr = table_id.split(",");
int[] table_ids = new int[strarr.length];
for(int i=0;i<strarr.length;i++){
table_ids[i]=Integer.parseInt(strarr[i]);}
转换为Arraylist<>
方法一 创建一个空Arraylist对象,在使用add()方法添加元素,如果想使用不同类型数据请改变相应的包装类和数据
//String
String[] words = {"ace", "boom", "crew", "dog", "eon"};
ArrayList<String> wordList = new ArrayList<String>(words.length);
for (String e : words){
wordList.add(e);
}
for (String e : wordList){
System.out.println(e);
}
//Character
char[] words = {'a','b', 'c'};
ArrayList<Character> wordList = new ArrayList<Character>(words.length);
for (char e : words){
wordList.add(e);
}
for (char e : wordList){
System.out.println(e);
}
char[]类型
转换为String
方法一:利用String构造方法
char d[] = {'s','h','a','n','g'};
String str = new String(d);
方法二:利用String自带的valueOf()方法
char[] c = {'s','h','p','n','a'};
String r = String.valueOf(c);
转换为StringBuffer
方法一:先转换为String类型再转换为StringBuffer
char[] data = {'H','e','l','l','o','d'};
String str = new String();//或者直接调用构造方法:String str = new String(data);
str = String.valueOf(data);//调用String类的valueOf函数将字符数组转换成String
StringBuffer buffer = new StringBuffer();
buffer = buffer.append(str);//调用append函数将String转换成Stringbuffer
转换为int[]
方法一先转换为String在转换为int[],转换使用parseInt()函数
String str = "69211621356";
int[] arr = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
arr[i] = Integer.parseInt(str.substring(i, i + 1));//substring是找出包含起始位置,不包含结束位置,到结束位置的前一位的子串
}
for(int i:arr)//输出数组arr
System.out.print(i+" ");
int[]类型
转换为List
int[] data = {4, 5, 3, 6, 2, 5, 1};
// int[] 转 List<Integer>
List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
// Arrays.stream(arr) 可以替换成IntStream.of(arr)。
// 1.使用Arrays.stream将int[]转换成IntStream。
// 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>。
// 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>。
// int[] 转 Integer[]
Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);
// 前两步同上,此时是Stream<Integer>。
// 然后使用Stream的toArray,传入IntFunction<A[]> generator。
// 这样就可以返回Integer数组。
// 不然默认是Object[]。
// List<Integer> 转 Integer[]
Integer[] integers2 = list1.toArray(new Integer[0]);
// 调用toArray。传入参数T[] a。这种用法是目前推荐的。
// List<String>转String[]也同理。
// List<Integer> 转 int[]
int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
// 想要转换成int[]类型,就得先转成IntStream。
// 这里就通过mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream
// 而IntStream中默认toArray()转成int[]。
// Integer[] 转 int[]
int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
// 思路同上。先将Integer[]转成Stream<Integer>,再转成IntStream。
// Integer[] 转 List<Integer>
List<Integer> list2 = Arrays.asList(integers1);
// 最简单的方式。String[]转List<String>也同理。
// 同理
String[] strings1 = {"a", "b", "c"};
// String[] 转 List<String>
List<String> list3 = Arrays.asList(strings1);
// List<String> 转 String[]
String[] strings2 = list3.toArray(new String[0]);
欢迎大家补充完善