一、StringBuilder轉String問題
1、StringBuilder轉String中文亂碼問題
在應用中,當需要對String進行頻繁的修改時,由於String的不可變性,會導致頻繁的創建新String對象,造成性能浪費。此時,我們可以選擇使用StringBuilder進行字元串的拼接。但是,在將StringBuilder轉換為String時,如果出現中文亂碼,怎麼辦?下面是解決辦法:
StringBuilder sb = new StringBuilder("轉換測試");
String str = new String(sb.toString().getBytes(), "UTF-8");
System.out.println(str); // 轉換測試
2、StringBuilder轉String存在null值
在使用StringBuilder進行字元串拼接時,可能會出現null值的情況。此時,我們可以通過以下方法去除null值:
StringBuilder sb = new StringBuilder();
sb.append("value1").append(",").append(null).append(",").append("value2");
String str = sb.toString().replaceAll(",null,", ",");
System.out.println(str); // value1,value2
3、StringBuilder清空內容
在使用StringBuilder時,有時需要清空其內容,以便重新進行字元串拼接。清空StringBuilder內容的方法如下:
StringBuilder sb = new StringBuilder("清空測試");
sb.setLength(0);
System.out.println(sb.toString()); // ""
二、String與其他常用類型互相轉換
1、String轉Set集合
有時候,我們需要將一個String類型的字元串拆分成多個部分,存儲到Set集合中,可以使用以下方法:
String str = "java,python,c++,go,java";
Set set = new HashSet(Arrays.asList(str.split(",")));
System.out.println(set); // [python, go, c++, java]
2、String轉List類型
String可以通過split()方法進行分割,然後存儲到List中:
String str = "java,python,c++,go,java";
List list = Arrays.asList(str.split(","));
System.out.println(list); // [java, python, c++, go, java]
3、String轉int
經常需要將String類型轉換成int,可以使用Integer.parseInt()方法:
String str = "100"; int i = Integer.parseInt(str); System.out.println(i); // 100
4、String轉byte數組
在網路傳輸和加密解密等場景中,常常需要將字元串轉換成byte數組,可以使用getBytes()方法實現:
String str = "string2byte[]"; byte[] bytes = str.getBytes(); System.out.println(Arrays.toString(bytes)); // [115, 116, 114, 105, 110, 103, 50, 98, 121, 116, 101, 91, 93]
5、String轉List對象
當字元串中存儲的是一個對象數組時,需要將其提取出來,並存儲到List中,可以使用以下的代碼:
String str = "[{\"id\":1,\"name\":\"Tom\"},{\"id\":2,\"name\":\"Jerry\"}]";
List<Map> list = new ArrayList();
JSONArray jsonArray = JSONArray.parseArray(str);
for (int i = 0; i < jsonArray.size(); i++) {
Map map = new HashMap();
JSONObject jsonObject = jsonArray.getJSONObject(i);
map.put("id", jsonObject.getInteger("id"));
map.put("name", jsonObject.getString("name"));
list.add(map);
}
System.out.println(list); // [{id=1, name=Tom}, {id=2, name=Jerry}]
三、StringBuilder轉String的實踐應用
StringBuilder轉String在開發中使用頻繁,特別是在拼接大量字元串時,使用StringBuilder會大大提高程序效率。以下是一段使用StringBuilder拼接HTML代碼的實例:
StringBuilder sb = new StringBuilder();
sb.append("<html>\n")
.append("<head>\n")
.append("<title>StringBuilder to String 實踐</title>\n")
.append("</head>\n")
.append("<body>\n")
.append("<p>StringBuilder to String演示</p>\n")
.append("</body>\n")
.append("</html>\n");
String html = sb.toString();
System.out.println(html);
以上代碼使用StringBuilder拼接HTML代碼,最後轉換成String類型輸出。StringBuilder轉String的應用不僅僅局限於這個,根據場景不同,可以有多種實踐應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150666.html
微信掃一掃
支付寶掃一掃