StringBuilder轉String實踐詳解

一、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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-09 02:13
下一篇 2024-11-09 02:13

相關推薦

  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • JWT String Argument Cannot Be Null or Empty

    JWT(JSON Web Token)是一種用於進行身份驗證的標準。在使用JWT時,經常會遇到「JWT String Argument Cannot Be Null or Empt…

    編程 2025-04-27
  • Python中String包含的進階應用

    對於Python程序員而言,String類型的操作是日常工作中必不可少的一部分。String包含的操作很多,其中最基礎的操作就是判斷一個字元串是否包含另一個字元串。本篇文章將對Py…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25

發表回復

登錄後才能評論