一、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; }
整理自: