java数据类型转换方法大全

 

数据转换内容借鉴多篇文章,该博客仅用于学习记录,将持续更新

https://www.cnblogs.com/mike-mei/p/11110051.html

https://blog.csdn.net/ido1ok/article/details/84284703

 

目录

String类型

转换为char[]

转换为String[]

转换为StringBuffer

转换为int[]

转换为Arraylist<>

char[]类型

转换为String

转换为StringBuffer

转换为int[]

int[]类型

转换为List


 

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]);

欢迎大家补充完善

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值