java最全类型转换总结(持续更新中~~~)

1:String

1:把string类型转化成char

String string = "abc" ;
char [] stringArr = string.toCharArray();

2:String 转换为 ArrayList< String > 网上给的大多说方法,这中转化是有错的,少了一层,可以往下看3

String str ="1,2,3,4,5";
ArrayList<String> b = new ArrayList( str.split(',') ) ;

3:String 转换为 ArrayList< String >

import java.util.ArrayList;
import java.util.Arrays;
public static void main(String[] args){
        String str="1,2,3,4,5";
        ArrayList<String> d = new ArrayList(Arrays.asList(str.split(",")));
        System.out.println(str);
        System.out.println(d);
    }
    //output
    //1,2,3,4,5
	//[1, 2, 3, 4, 5]

4:String 转换为 List< String >

 public static void main(String[] args){
        String str="LEETCODEISHIRING";
        convert(str,3);
        String ids="1,2,3,4,5,6,7,8,9";
        List<String> list = Arrays.asList(ids.split(","));
        System.out.println(ids);
        System.out.println(list);
        //outinput
        //        1,2,3,4,5,6,7,8,9
		//        [1, 2, 3, 4, 5, 6, 7, 8, 9]
    }

5:String转换为 整数类型和浮点类型

public static void main(String[] args)throws IOException{
        String s="123";
        byte b = Byte.parseByte( s );
        short t = Short.parseShort( s );
        int i = Integer.parseInt( s );
        long l = Long.parseLong( s );
        Float f = Float.parseFloat( s );
        Double d = Double.parseDouble( s );
        System.out.println(b);
        System.out.println(t);
        System.out.println(i);
        System.out.println(l);
        System.out.println(f);
        System.out.println(d);
        //outInput
        //123
        //123
        //123
        //123
        //123.0
        //123.0
    }

6:String转换为byte[]

1:解释:遍历此数组,则会得到97,98,99,100,101,102这6个数。表示该数组中存储这6个数。(byte的取值范围是-128——+127)

public static void main(String[] args)throws IOException{
        String str="abcdef";
        byte[] strArray=str.getBytes();
        for (int i=0;i<strArray.length;i++){
            System.out.println(strArray[i]);
        }
        //outInput
        //97
        //98
        //99
        //100
        //101
        //102
    }

7:String(时间字符)转换为Date类型

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public static void main(String[] args)throws ParseException {

        String startTime="2020-07-30";
        String endTime="2020-08-01";
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date start=formatter.parse(startTime);
        Date end=formatter.parse(endTime);
        System.out.println(start);
        System.out.println(formatter.parse(endTime));
        //outInput
        //Thu Jul 30 00:00:00 CST 2020
        //Sat Aug 01 00:00:00 CST 2020
    }

8:String 的json 转换为List<实体>

	//import com.alibaba.fastjson.JSONArray;
		System.out.println(s);
        JsonParser jp = new JsonParser();
        System.out.println(jp);
        //将json字符串转化成json对象
        JsonObject jo = jp.parse(s).getAsJsonObject();
        System.out.println(jo);
        String strObject=jo.get("data").toString();
        System.out.println(strObject);
        List<CspCallStatistics> taskNodes = JSONArray.parseArray(strObject,CspCallStatistics.class);
        System.out.println(taskNodes);
{"actionID":"2c2881ee73b3c2b00173b3c2b04d0000","code":200,"currentPage":"",
"data":[{"inCalls":0,"agentName_cn":"10001","talkTime":"00:00:00","name":"CSDN公司","inAnswerCalls":0,"outAnswerCalls":0,"intentionAgree":0,"calls":0,
"inCallCompletingRate":"0.00%","avgTalkTime":"00:00:00","outCallCompletingRate":"0.00%","outCalls":0}],
"message":"success!","tenantID":10001,"totalCount":"1"}


2020-08-03 17:59:19.478 [QuartzScheduler_MyScheduler-DESKTOP-C2KKNQ11596448704052_ClusterManager] WARN  o.s.scheduling.quartz.LocalDataSourceJobStore:3396 - This scheduler instance (DESKTOP-C2KKNQ11596448704052) is still active but was recovered by another instance in the cluster.  This may cause inconsistent behavior.
com.google.gson.JsonParser@68961854


{"actionID":"2c2881ee73b3c2b00173b3c2b04d0000","code":200,"currentPage":"","data":
[{"inCalls":0,"agentName_cn":"10001","talkTime":"00:00:00","name":"CSDN公司",
"inAnswerCalls":0,"outAnswerCalls":0,"intentionAgree":0,"calls":0,"inCallCompletingRate":"0.00%",
"avgTalkTime":"00:00:00","outCallCompletingRate":"0.00%","outCalls":0}],
"message":"success!","tenantID":10001,"totalCount":"1"}


2020-08-03 17:59:49.636 [QuartzScheduler_MyScheduler-DESKTOP-C2KKNQ11596448704052_ClusterManager] 
WARN  o.s.scheduling.quartz.LocalDataSourceJobStore:3396 - This scheduler instance
 (DESKTOP-C2KKNQ11596448704052) is still active but was recovered by another instance in the cluster. 
  This may cause inconsistent behavior.[{"inCalls":0,"agentName_cn":"10001","talkTime":"00:00:00","name":"CSDN公司","inAnswerCalls":0,"outAnswerCalls":0,"intentionAgree":0,"calls":0,"inCallCompletingRate":"0.00%",
  "avgTalkTime":"00:00:00","outCallCompletingRate":"0.00%","outCalls":0}]


[CspCallStatistics(id=null, createBy=null, createTime=null, updateBy=null, updateTime=null, sysOrgCode=null, 
name=CSDN公司, agentNameCn=10001, avgTalkTime=00:00:00, calls=0, inAnswerCalls=0, inCalls=0, 
outAnswerCalls=0, outCalls=0, talkTime=00:00:00, inCallCompletingRate=0.00%, outCallCompletingRate=0.00%, 
inTransfers=null, outTransfers=null, inMonitors=null, outMonitors=null, inConferences=null, outConferences=null, 
outAvgRingTime=null, inAvgRingTime=null, avgRingTime=null, startTime=null, endTime=null)]

9:String转JsonObject对象

用阿里的fastjson里的一个方法,导入fastjson包

<!-- json -->
		<dependency>
         	<groupId>com.alibaba</groupId>
         	<artifactId>fastjson</artifactId>
         	<version>1.2.60</version>
        </dependency>
JSONObject jsonObject1 =JSONObject.parseObject(String)

2:Char[]

1. 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'});

2. char[] (字符数组)转换为String

1.通过String的valueOf方法

public static void main(String[] args)throws IOException{
        //char类型用一对单引号表示,一对双引号表示字符串
        char[] strArray={'a','b','c','d','e','f'};
        String s1=String.valueOf(strArray);
        System.out.println(strArray);
        System.out.println(s1);
        //outInput
        //abcdef
        //abcdef
    }

2:构造String时转换

public static void main(String[] args)throws IOException{
        //char类型用一对单引号表示,一对双引号表示字符串
      char[] strArray={'a','b','c','d','e','f'};
	  String s2=new String(strArray);
        System.out.println(strArray);
        System.out.println(s2);
        //outInput
        //abcdef
        //abcdef
    }

3:ArrayList

8: ArrayList< String > 转换为 String

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

  list.add("aaa");

  list.add("bbb");

  String str = String.join(",",  list.toArray(new String[list.size()]));

9:ArrayList< String > 转换为 String[]

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

  list.add("aaa");

  list.add("bbb");

  String[] arrString = list.toArray(new String[list.size()]) ;

4:String[]

1: String[] 转换为 ArrayList< String >

ArrayList<String> list = new ArrayList<> (new String[] { "aaa", "bbb" });

2:String[] (字符串数组) 转化为String (字符串),

1:只能通过循环

public static void main(String[] args)throws IOException{
        String[] str = {"abc", "bcd", "def"};
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < str.length; i++){
            sb. append(str[i]);
        }
        String s = sb.toString();
        System.out.println(sb);
        //outInput
        //abcbcddef
    }

3:String[]转化为List

List<String> list = Arrays.asList(arr);

5:List

1: List< String >转换为String

String str= String.join(",", list);
public static void main(String[] args){
        List<String> list = new ArrayList<String>();
        list.add("LiLi");
        list.add("XiaoMing");
        list.add("LiHua");
        list.add("ZhangSan");
        list.add("LiSi");
        System.out.println(list);
        String string = String.join(",", list);
        System.out.println(string);
    }
  //   output:
  //   [LiLi, XiaoMing, LiHua, ZhangSan, LiSi]
  //   LiLi,XiaoMing,LiHua,ZhangSan,LiSi

2:List< String >转换为String[]

String[] arr = list.toArray(new String[list.size()]);

3:list转set

Set<String> set = new HashSet<>(skuList);

4:list转Map

1:方法1(普通for循环)

 Map<Long, User> maps = new HashMap<>();
        for (User user : userList) {
            maps.put(user.getId(), user);
        }

2:方法2(使用guava)

Map<Long, User> maps = Maps.uniqueIndex(userList, new Function<User, Long>() {
            @Override
            public Long apply(User user) {
                return user.getId();
            }
   });

3:方法3(java8)

map的值是对象

Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2));


 /**
 * 当存在value值为空时,使用Collectors.toMap()会报NPE
 * 原因:底层调用了Map的merge方法,而map方法规定了此处的vlue不能为null,从而抛出空指针异常
 * Objects.requireNonNull(value);
*/
//HashMap<String, String> map01 = list.stream().collect(Collectors.toMap(User::getUserName, User::getIdCard, (a, b) -> b, HashMap::new));
//System.out.println(map01);
 
//解决方案一,使用Optional类处理null
HashMap<String, String> map02 = list.stream().collect(Collectors
       .toMap(s -> Optional.ofNullable(s.getUserName()).orElse("空的"), s -> Optional.ofNullable(s.getSex()).orElse("空的"), (a, b) -> b, HashMap::new));
System.out.println(map02);
 
//解决方案二,直接使用collect()方法进行规约操作,关于这里collect方法的使用可以看这篇文章 https://www.cnblogs.com/sueyyyy/p/13502116.html
 HashMap<String, String> map03 = list.stream().collect(HashMap::new, (map, item) -> map.put(item.getUserName(), item.getSex()), HashMap::putAll);
 System.out.println(map03);

有时候,希望得到的map的值不是对象,而是对象的某个属性,那么可以用下面的方式:

Map<Long, String> maps = userList.stream().collect(Collectors.toMap(User::getId, User::getAge, (key1, key2) -> key2));


6:基本数据类型

1:整数类型和浮点类型转String类型

    public static void main(String[] args)throws IOException{
        byte b = 127;
        short t = 32767;
        int i = 2147483647;
        long l = 9223372036854775807L;
        Float f = 555F;
        Double d = 6666D;
        String b1 = String.valueOf(b);
        String t1 = String.valueOf(t);
        String i1 = String.valueOf(i);
        String l1 = String.valueOf(l);
        String f1 = String.valueOf(f);
        String d1 = String.valueOf(d);
        System.out.println(b1);
        System.out.println(t1);
        System.out.println(i1);
        System.out.println(l1);
        System.out.println(f1);
        System.out.println(d1);
//        uotInput
//        127
//        32767
//        2147483647
//        9223372036854775807
//        555.0
//        6666.0
    }

7:int数据类型

1:int转换为String类型

public static void main(String[] args)throws IOException{
        int i = 2147483647;
        String s=""+i;
        System.out.println(s);
        //outInput
        //"2147483647"
    }

8:java对象

1:java对象装json对象(JSONObject)

CallStatisticsVO callStatisticsVO = new CallStatisticsVO();
JSONObject json = JSON.parseObject(JSON.toJSONString(callStatisticsVO));//将java对象转换为json对象

2:java对象转List

Arrays.asList(object)

9:set

1:set转list

List<String> list = new ArrayList<>(set);

10:List Object

1:List Object 转换成List String

List<String> strs = (List<String>)(List)objList

11:Map

1:Map转List

将Map的key转成List:

List<String> mapKeyList = new ArrayList<String>(map.keySet());   

将Map的Value转成List:

List<String> mapValueList = new ArrayList<String>(map.values());   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值