JavaRush /Java Blog /Random-TW /喝咖啡休息#241。如何將字串轉換為陣列 - 詳細指南

喝咖啡休息#241。如何將字串轉換為陣列 - 詳細指南

在 Random-TW 群組發布
來源:FreeCodeCamp 透過本教程,您將學習如何將字串轉換為陣列。在開發文字處理應用程式或處理資料時,這項技能會派上用場。 喝咖啡休息#241。 如何將字串轉換為陣列 - 詳細指南 - 1Java中的字串是一組字符,而數組是相同類型的元素的集合。您可以使用轉換程序將字串拆分為多個片段,然後將這些片段儲存在陣列中以進行進一步處理或分析。有多種 Java 方法可以將字串轉換為陣列。了解它們將使您能夠選擇最適合您的程式設計要求的一種。

如何使用 toCharArray() 方法將字串轉換為陣列

toCharArray()方法是一個內建的 Java 函數,它允許您將字串轉換為字元數組,並將字串的每個字元轉換為陣列的元素。String類別中提供了該方法。

toCharArray() 方法的語法和用法:

public class StringToArrayExample {
    public static void main(String[] args) {
        String str = "Hello, World!";

        // Преобразовать строку в массив символов
        char[] charArray = str.toCharArray();

        // Распечатать элементы массива
        for (char c : charArray) {
            System.out.println(c);
        }
    }
}

程序說明:

  1. 宣告一個字串變數str並為其分配所需的字串。
  2. 對字串str使用toCharArray()方法將其轉換為字元陣列。此方法將字串拆分為單一字元並傳回包含這些字元的陣列。
  3. 將產生的字元陣列儲存在charArray變數中。
  4. 使用for-each循環遍歷charArray來單獨列印每個字元。
結論:
你好世界 !

使用 toCharArray() 的優點:

  • 簡單性:toCharArray()方法提供了一種只需一次方法呼叫即可將字串轉換為字元陣列的簡單方法。
  • 可讀性:產生的字元數組可以輕鬆修改、操作或透過循環迭代。
  • 不可變字串:由於 Java 中的字串是不可變的,因此當您需要更改單個字元時,將它們轉換為字元陣列會很有用。

使用 toCharArray() 的缺點:

  • 增加記憶體使用:toCharArray()方法建立一個新的字元數組,這需要額外的記憶體。如果您使用大字串,這可能會成為問題。
  • 效能:與其他方法相比,建立新的字元陣列和複製字元可能會導致效能下降,尤其是對於長字串。

如何使用 split() 方法分割字串

Java 中的split()方法是一種根據給定分隔符號將字串拆分為子字串陣列的便捷方法。String類別中提供了該方法。

split()方法的語法和用法:

String[] split(String delimiter)
此方法將分隔符號作為參數,它指定字串的分割點。分隔符號可以是正規表示式或簡單字串。示範使用split()進行轉換的範例程式碼:
string = "Hello,World,How,Are,You?"
delimiter = ","

split_string = string.split(delimiter)
print(split_string)

程序說明:

  1. 我們定義一個名為string的字串變數。它包含我們要分離的文本:“Hello,World,How,Are,You?”
  2. 我們指定要用來分隔字串的逗號 ( , ) 分隔符號並將其指派給分隔符號變數。
  3. 然後,我們對字串變數使用split()方法,並將分隔符號作為參數傳遞。這會將字串拆分為找到分隔符號的子字串。
  4. split()方法傳回一個子字串列表,我們將其指派給split_string變數。
  5. 最後,我們列印split_string列表來查看結果。
結論:
[「你好」、「世界」、「怎麼樣」、「是」、「你嗎?」]

使用 split() 的優點:

  • 方便易用。
  • 允許您根據指定的分隔符號分割字串。
  • 支援正規表示式作為分隔符,提供靈活的分隔符選項。

使用 split() 的缺點:

  • 如果在字串中找不到分隔符,則將原始字串作為結果陣列的一個元素傳回。
  • 正規表示式使用起來可能很棘手,並且使用不當可能會導致意外結果。
  • 使用複雜的正規表示式分割大字串的計算成本可能很高。

如何使用 StringTokenizer 將字串轉換為陣列

Java 中的StringTokenizer類別是一個遺留類,它提供了一種方便的方法來將字串標記或拆分為單獨的標記。它通常用於透過根據指定的分隔符號分割字串來將字串轉換為陣列。

StringTokenizer的語法和用法:

要使用StringTokenizer,首先需要建立StringTokenizer類別的實例,並將字串和分隔符號傳遞為參數:
StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);
範例程式碼:
import java.util.StringTokenizer;

public class StringToArrayExample {
    public static void main(String[] args) {
        String inputString = "Hello,World,How,Are,You?";

        // Creation an object StringTokenizer с разделителем ","
        StringTokenizer tokenizer = new StringTokenizer(inputString, ",");

        int tokenCount = tokenizer.countTokens();
        String[] stringArray = new String[tokenCount];

        // Преобразование каждого токена в элементы массива
        for (int i = 0; i < tokenCount; i++) {
            stringArray[i] = tokenizer.nextToken();
        }

        // Печать выходного массива
        for (String element : stringArray) {
            System.out.println(element);
        }
    }
}

程序說明:

  1. 程式碼首先根據輸入字串建立一個名為tokenizer的StringTokenizer對象,並以","分隔。
  2. countTokens()方法用於取得輸入字串中存在的標記總數。該值儲存在tokenCount變數中。
  3. 被呼叫的stringArray所建立的大小等於tokenCount
  4. nextToken()方法在循環中使用來迭代每個標記並為其指派stringArray中的對應索引。
  5. 最後,使用for循環列印stringArray檔案中的每個元素。
結論:
你好,世界,你好嗎?

StringTokenizer 應用程式

StringTokenizer在多種場景中都很有用,包括:
  • 解析具有一致分隔符結構的輸入資料。
  • 從句子或段落中提取單字或組件。
  • 將逗號分隔的數值分隔成各個元素。
  • 用於詞法分析或語言處理任務的文本標記化。

使用 StringTokenizer 的優點:

  • 簡單:StringTokenizer 的語法簡單明了,適合初學者。
  • 效率: 與正規表示式或手動基於字元的分割相比,StringTokenizer在記憶體和效能方面都非常有效率。
  • 靈活的分隔符:您可以指定多個分隔符或使用一組預先定義的分隔符,從而實現通用標記化。
  • 迭代處理: StringTokenizer允許您迭代處理令牌,這使其對於處理大型字串非常有用,而無需立即將所有內容載入到記憶體中。

使用 StringTokenizer 的缺點:

  • 功能有限: StringTokenizer缺乏現代替代方案中的一些進階功能,例如正規表示式,它在標記複雜模式方面提供了更大的靈活性
  • 不支援正規表示式:split()等其他方法不同,StringTokenizer不能使用正規表示式作為分隔符,這限制了其分詞能力。
  • 不支援空標記:預設情況下, StringTokenizer不處理空標記。如果您有連續的分隔符,它們將被視為單一分隔符,這可能會導致意外結果。
  • 已棄用的類別: StringTokenizer是遺留 Java 集合框架的一部分,並且沒有實作Iterable接口,這意味著它不能在擴展for循環中使用。

如何手動將字串的每個字元轉換為陣列元素

在某些情況下,您可能需要對轉換過程進行更多控制,或者想要對其進行自訂以滿足您的特定要求。在這種情況下,您可以透過手動迭代字串中的每個字元並將它們分配給數組中的各個元素,將字串轉換為數組。演示手動轉換的範例程式碼:
string = "Hello, World!"
array = []

for char in string:
    array.append(char)

print(array)

程序說明:

  1. 我們定義一個字串變數string,其值為“Hello, World!”
  2. 我們初始化一個名為array的空列表。
  3. 我們使用for迴圈來迭代string中的每個字元。
  4. 在迴圈內部,我們使用append()方法將每個字元追加到陣列中。
  5. 循環完成後,我們列印數組來查看結果。
結論:
['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '! ']

手動轉換的優點:

  • 提供對轉換過程的完全控制。
  • 允許在將字元分配給數組之前對其進行自訂或操作。
  • 當您需要在轉換期間執行其他操作時效果很好。

手動轉換的缺點:

  • 與toCharArray()split()等內建方法相比,需要更多程式碼和手動處理。
  • 由於手動迭代過程,對於大字串可能效率較低。
  • 如果實施不正確,會增加出錯的風險。
筆記。如果轉換過程中需要進行特殊操作,最好選擇手動轉換方式。否則,為了簡單和高效,建議使用toCharArray()split()等內建方法。

不同方法的比較

toCharArray():

  • 方法簡單明了。
  • 傳回表示字串的字元數組。
  • 適用於無特殊要求的一般轉換。

分裂():

  • 根據指定的分隔符號將字串拆分為數組。
  • 如果您需要將字串拆分為子字串,則很有用。
  • 提供選擇分隔符號範本的靈活性。

字串標記器:

  • 專為基於分隔符號的字串標記化而設計。
  • 允許您自訂分隔符號。
  • 當您需要對標記化過程進行精細控制時適合。

手動轉換:

  • 提供對轉換過程的完全控制。
  • 允許您對符號進行配置和執行其他操作。
  • 如果轉換過程中需要特殊要求,建議使用。

為什麼需要知道如何在 Java 中將字串轉換為陣列?

Java 中字串到陣列轉換的重要性在於它為資料處理提供的多功能性和靈活性。以下是 Java 中將字串轉換為陣列的能力如此重要的一些關鍵原因:
  • 數據操縱。數組提供了一種在 Java 中儲存和操作資料的結構化方法。透過將字串轉換為數組,您可以存取單一字元或子字串、修改資料以及執行各種操作,例如排序、搜尋或過濾。
  • 算法運算。Java中的許多演算法和資料結構都需要以陣列形式輸入。透過將字串轉換為數組,您可以輕鬆應用這些演算法並執行排序、反轉或檢索特定元素等操作。
  • 文本的解析和分析。字串通常包含結構化或分隔數據,例如 CSV(逗號分隔值)或 JSON(JavaScript 物件表示法)。將字串轉換為數組可讓您分解和分析數據,從而可以進一步分析、處理或提取特定資訊。
  • 字串操作。雖然字串有自己的一組操作方法,但陣列提供了額外的靈活性。將字串轉換為陣列可讓您使用特定於陣列的操作(例如索引、切片或串聯)來更有效地管理資料或滿足某些格式要求。
  • 相容性:在某些場景下,您可能需要將字串轉換為數組,以便與需要基於數組輸入的庫或 API 進行互動。透過執行轉換,您可以輕鬆地將字串資料與外部元件集成,確保相容性並實現無縫資料交換。

結論

在本文中,我們討論了在 Java 中將字串轉換為陣列的各種方法。您了解了四種不同的方法:使用toCharArray()方法、使用split()方法分割字串、使用StringTokenizer以及手動將每個字元轉換為陣列元素。我們詳細介紹了每種方法,包括它們的語法、用法、範例程式碼、優缺點。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION