JAVA各种数据类型的互相转换

一:String与基础类型与包装类的互转

1:Java基础类型转换为String类型都可以先尝试String.valueOf()方法;

2:将String类型转换为基础类型或其包装类可以使用下面2种方法:

将string转换为基础类型
1). int i = Integer.parseInt(String);        
i = Integer.parseInt([String],[int radix]); 
将string转换为包装类
2). int i = Integer.valueOf(String).intValue();    
intValue()可以省略,Integer.valueOf(String)返回的是Integer类型,包装类可以自动拆箱转换为int
注: 字串转成 Double, Float, Long 的方法大同小异

3:基础类型对应的包装类可以直接互转,基础类型和包装类之间可以自动装箱和拆箱,所以不用额外的去转换。

Integer i= 1;

4:包装类转换为String类型,直接包装类.tostring即可

Integer integer1 = 1;
Integer.toString(integer1);
也可以使用String.valueOf(),这里涉及拆箱操作

5:包装类和基础类型转换

正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);

反向转换:通过类包装器来转换
int b=a.intValue();

其他:

StringBuilder转化为String

    String str = "abcdefghijklmnopqrs";
    StringBuilder stb = new StringBuilder(str);

整型数组转化为字符串

    StringBuilder s = new StringBuilder();
    for(i=1;i<=n;i++) {
        s.append(String.valueOf(a[i]));
    }
    String str = ""+s;                   

字符串转化为整形数组

    String str="123456";
    int[] a = new int[str.length()];
    for(int i=0;i<str.length();i++) {
        a[i]  = str.charAt(i)-'0';
    }

字符串转化为字符数组

    String str="123456";
    char[] c = str.toCharArray() ;
    System.out.println(c);

字符数组转化为整型数组

    char[] c = { '1', '2', '3', '4', '5', };
    int[] a = new int[c.length];
    for (int i = 0; i < 5; i++) {
        a[i] = c[i] - '0';
        System.out.println(a[i]);
    }

整型数组转化为字符数组

    int[] a = {1,2,3,4,5};
    char[] c = new char[a.length];
    for (int i = 0; i < 5; i++) {
        c[i] = (char) (a[i]+'0');
        System.out.println(c[i]);
    

二:集合与数组与String之间的互转

1、集合转成数组:

  转之前集合里面存的什么类型的数据,就new什么类(特别:存的是基本数据的封装类,就要new他的封装类)

  例如:

  1.1集合:   

    ArrayList<Character> list = new ArrayList<Character>();

  1.2转成数组:

    Character help[] = list.toArray(new Character[list.size()]);

  1.3再转成字符串:

    此时注意不能简单粗暴的直接用String的valueOf方法,那样会返回地址

    例如:

      String str2 = String.valueOf(help);

      输出str2为地址:[Ljava.lang.Character;@16de49c

    ---------------------------------------------------------------------------

    重点来啦:

      先创建一个字符串缓冲区:

        StringBuffer sb = new StringBuffer();

      再用for循环把包装类数组中的数据一个一个加进去

        for(Character c : help){

          sb.append(c);

        }

      再返回次序列中字符串的表示形式toString()

        sb.toString();

      再输出就是字符串啦!!!!!

2、数组转成集合

    2.1例如上述的数组:

       Character help[] = list.toArray(new Character[list.size()]);

    2.2转成集合:

       List<Character> list1 = Arrays.asList(help); 

    2.3集合再转成String:

      重复1的方法

    2.4数组直接转成字符串:

      包装类的数组转成字符串建议采用1中的1.2和1.3,要是用valueOf(help),得到的就是地址

      基本类型的数组转成字符串:

         char c1[] = {'a','b','c'};

        String str = String.valueOf(c1);

        得到的就是"abc"

3、字符串转成集合

  先把字符串转成数组再转成集合

  

4、字符串转成数组:

      String str ="abc";直接用toCharArray()/getBytes()

   String str1 = "a,b,c";用分割字符串即可

三:map list set 数组互转

 list,set,map,数组间的相互转换 1:

list,set,map,数组间的相互转换
1.list转set
Set set = new HashSet(new ArrayList());

2.set转list
List list = new ArrayList(new HashSet());

3.数组转为list
List stooges = Arrays.asList("Larry", "Moe", "Curly");
//此时stooges中有有三个元素。注意:此时的list不能进行add操作,否则会报 “java.lang.UnsupportedOperationException”,Arrays.asList()返回的是List,而且是一个定长的List,所以不能转换为ArrayList,只能转换为AbstractList
原因在于asList()方法返回的是某个数组的列表形式,返回的列表只是数组的另一个视图,而数组本身并没有消失,对列表的任何操作最终都反映在数组上. 所以不支持remove,add方法的。

或者
String[] arr = {"1", "2"};
List list = Arrays.asList(arr);

4.数组转为set
int[] a = { 1, 2, 3 };
Set set = new HashSet(Arrays.asList(a));

5.map的相关操作。
Map map = new HashMap();
map.put("1", "a");
map.put('2', 'b');
map.put('3', 'c');
System.out.println(map);
// 输出所有的值
System.out.println(map.keySet());
// 输出所有的键
System.out.println(map.values());
// 将map的值转化为List
List list = new ArrayList(map.values());
System.out.println(list);
// 将map的值转化为Set
Set set = new HashSet(map.values());
System.out.println(set);

6.list转数组
List list = Arrays.asList("a","b");
String[] arr = (String[])list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr));

运行:

{1=a, 2=b, 3=c}
[1, 2, 3]
[a, b, c]
[a, b, c]
[a, b, c]
[a, b]

遍历map时:

public static void main(String[] args) {


  Map<String, String> map = new HashMap<String, String>();
  map.put("1", "value1");
  map.put("2", "value2");
  map.put("3", "value3");
  
  //第一种:普遍使用,二次取值
  System.out.println("通过Map.keySet遍历key和value:");
  for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
  }
  
  //第二种
  System.out.println("通过Map.entrySet使用iterator遍历key和value:");
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }
  
  //第三种:推荐,尤其是容量大时
  System.out.println("通过Map.entrySet遍历key和value");
  for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

  //第四种
  System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
  for (String v : map.values()) {
   System.out.println("value= " + v);
  }
 }

list,set,map,数组间的相互转换2:

package com.example.test; 
 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.HashMap; 
import java.util.HashSet; 
import java.util.List; 
import java.util.Map; 
import java.util.Set; 
 
public class ConvertorTest { 
 
    /**
     * @param args
     */ 
    public static void main(String[] args) { 
 
        testList2Array(); 
        testArray2List(); 
        testSet2List(); 
        testList2Set(); 
        testSet2Array(); 
        testArray2Set(); 
        testMap2Set(); 
        testMap2List(); 
    } 
 
    private static void testMap2List() { 
 
        Map<String, String> map =new HashMap<String, String>();   
        map.put("A","ABC");   
        map.put("K","KK");   
        map.put("L","LV");   
 
        // 将Map Key 转化为List     
        List<String> mapKeyList =new ArrayList<String>(map.keySet());   
        System.out.println("mapKeyList:"+mapKeyList); 
 
        // 将Map Key 转化为List     
        List<String> mapValuesList =new ArrayList<String>(map.values());   
        System.out.println("mapValuesList:"+mapValuesList); 
 
    } 
 
    private static void testMap2Set() { 
 
        Map<String, String> map =new HashMap<String, String>();   
        map.put("A","ABC");   
        map.put("K","KK");   
        map.put("L","LV");   
 
        // 将Map 的键转化为Set     
        Set<String> mapKeySet = map.keySet();   
        System.out.println("mapKeySet:"+mapKeySet); 
 
        // 将Map 的值转化为Set     
        Set<String> mapValuesSet =new HashSet<String>(map.values());   
        System.out.println("mapValuesSet:"+mapValuesSet); 
    } 
 
    private static void testArray2Set() { 
 
        String[] arr = {"AA","BB","DD","CC","BB"};   
 
        //数组-->Set   
        Set<String> set =new HashSet<String>(Arrays.asList(arr));   
        System.out.println(set);   
    } 
 
    private static void testSet2Array() { 
        Set<String> set =new HashSet<String>(); 
        set.add("AA"); 
        set.add("BB"); 
        set.add("CC"); 
 
        String[] arr =new String[set.size()];   
        //Set-->数组   
        set.toArray(arr);  
        System.out.println(Arrays.toString(arr));   
    } 
 
    private static void testList2Set() { 
 
        List<String> list =new ArrayList<String>(); 
        list.add("ABC"); 
        list.add("EFG"); 
        list.add("LMN"); 
        list.add("LMN"); 
 
        //List-->Set 
        Set<String> listSet =new HashSet<String>(list); 
        System.out.println(listSet); 
    } 
 
    private static void testSet2List() { 
 
        Set<String> set =new HashSet<String>(); 
        set.add("AA"); 
        set.add("BB"); 
        set.add("CC"); 
 
        //Set --> List 
        List<String> setList =new ArrayList<String>(set); 
        System.out.println(setList);   
    } 
 
    private static void testList2Array() { 
        //List-->数组   
        List<String> list =new ArrayList<String>();   
        list.add("AA");   
        list.add("BB");   
        list.add("CC");   
        Object[] objects = list.toArray();//返回Object数组   
        System.out.println("objects:"+Arrays.toString(objects));   
 
        String[] arr =new String[list.size()];   
        list.toArray(arr);//将转化后的数组放入已经创建好的对象中   
        System.out.println("strings1:"+Arrays.toString(arr));   
    } 
 
    private static void testArray2List() { 
        //数组-->List   
        String[] ss = {"JJ","KK"};   
        List<String> list1 = Arrays.asList(ss);   
        List<String> list2 = Arrays.asList("AAA","BBB");   
        System.out.println(list1);   
        System.out.println(list2);   
    } 
 
}

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值