一、char、char[]、String、String[]和List之间的转换关系
转换示例:
char | char[] | String | String2 | String[] | List< String> |
---|---|---|---|---|---|
c | cArr | str | str2 | strArr | list |
‘t’ | {‘t’,‘e’,‘s’,‘t’} | “test” | “te,st” | {“t”,“e”,“s”,“t”} | [“t”,“e”,“s”,“t”] |
1.String
- String中的第一个元素转成char
char c = str.charAt(0)
;
输出:‘t’ - String转成Char[]
char[] cArr = str.toCharArray()
;
输出:cArr内存地址 - String转成list< String>
List< String> list =Arrays.asList(str)
;
输出:[t,e,s,t] - String2转成list< String>
List< String> list =Arrays.asList(str2.split(","))
;
输出:[te,st] - String2转成String[]
String[] strArr =str2.split(",")
;
输出:{“te”,“st”}
2.char&char[]
- Char转成String
String str =String.valueOf(c)
;
输出:“t” - Char[]转成String
String str =String.valueOf(cArr)
;
输出:“test”
3.String[]
- String[]转成String
String str =Arrays.toString(strArr)
;
输出:[t,e,s,t] - String[]转成String
法2
String str2 =String.join(",",strArr)
;
输出:t,e,s,t - 将String[]转成list< String>方法1(可以用但有缺陷):
List< String> strArrToList =Arrays.asList(strArr)
;
输出:[t,e,s,t] - 将String[]转成list< String>方法2(推荐):
List< String> strArrToList =new ArrayList< String>(Arrays.asList(strArr));
注:法一虽然能转换成功,但由于未分配大小,导致无法进行add()、remove()等操作(而且会抛出UnsupportedOperationException异常),而法二的转换方式不存在这个问题,具体原因见【Java】异常总结中2.2说明
4.List< String>
- 将List转成String[]
String[] strArr =list.toArray(new String[list.size()])
;
输出:strArr内存地址 - 将List转成String
String str =String.join(",",list.toArray(new String[list.size()]))
;
输出:t,e,s,t - 将List转成String
法2
String str =String.join(",",list)
;
输出:t,e,s,t
5.拓展
- 将List中的元素转成指定格式的字符串,如SQL in语句中使用的字符串
‘t’,'e','s','t'
工具类方法:getListToString(List<String> list)
将元素为string的list转化为带单引号,以逗号隔开的字符串public final static String getListToString(List<String> list) { String str = ""; if(list!=null&&list.size()>0){ for(int i =0;i<list.size();i++){ if(i==0){ str += "'"+list.get(i)+"'"; }else { str += ", '"+list.get(i)+"'"; } } } return str; }
- 将String数组的元素转成指定格式的字符串,如SQL in语句中使用的字符串‘t’,‘e’,‘s’,‘t’
工具类方法:getString(String [] strArr)
将元素为string的list转化为带单引号,以逗号隔开的字符串public static String getString(String [] strArr) { String str = "'"; for (int i = 0; i < strArr.length; i++) { if (i < strArr.length - 1) { str += strArr[i] + "','"; } else { str += strArr[i] + "'"; } } return str; }
整理自: