文章目录
- 1:String
- 2:Char[]
- 3:ArrayList
- 4:String[]
- 5:List
- 6:基本数据类型
- 7:int数据类型
- 8:java对象
- 9:set
- 10:List Object
- 11:Map
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());