JavaRush /Blog Java /Random-VI /Nghỉ giải lao #241. Cách chuyển chuỗi thành mảng - Hướng ...

Nghỉ giải lao #241. Cách chuyển chuỗi thành mảng - Hướng dẫn chi tiết

Xuất bản trong nhóm
Nguồn: FreeCodeCamp Với hướng dẫn này, bạn sẽ học cách chuyển đổi một chuỗi thành một mảng. Kỹ năng này sẽ có ích khi phát triển các ứng dụng xử lý văn bản hoặc làm việc với dữ liệu. Nghỉ giải lao #241.  Cách chuyển chuỗi thành mảng - Hướng dẫn chi tiết - 1Chuỗi trong Java là một nhóm các ký tự, trong khi mảng là tập hợp các phần tử cùng loại. Bạn có thể chia chuỗi thành nhiều phần bằng quy trình chuyển đổi, sau đó lưu trữ các phần đó vào một mảng để xử lý hoặc phân tích thêm. Có nhiều phương thức Java khác nhau để chuyển đổi chuỗi thành mảng. Biết chúng sẽ cho phép bạn chọn cái phù hợp nhất với yêu cầu lập trình của bạn.

Cách chuyển đổi một chuỗi thành một mảng bằng phương thức toCharArray()

Phương thức toCharArray() là một hàm Java tích hợp cho phép bạn chuyển đổi một chuỗi thành một mảng ký tự và mỗi ký tự của chuỗi thành một phần tử của mảng. Phương thức này có sẵn trong lớp String .

Cú pháp và cách sử dụng phương thức 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);
        }
    }
}

Giải thích quy trình:

  1. Khai báo một biến chuỗi str và gán cho nó chuỗi mong muốn.
  2. Sử dụng phương thức toCharArray() trên chuỗi str để chuyển đổi nó thành một mảng ký tự. Phương thức này chia một chuỗi thành các ký tự riêng lẻ và trả về một mảng chứa các ký tự đó.
  3. Lưu trữ mảng ký tự kết quả trong một biến charArray .
  4. Lặp lại qua charArray bằng vòng lặp for-each để in từng ký tự riêng lẻ.
Phần kết luận:
Chào thế giới !

Ưu điểm của việc sử dụng toCharArray():

  • Đơn giản: Phương thức toCharArray() cung cấp một cách đơn giản để chuyển đổi một chuỗi thành một mảng ký tự chỉ bằng một lệnh gọi phương thức.
  • Khả năng đọc: Mảng ký tự kết quả có thể dễ dàng sửa đổi, thao tác hoặc lặp lại thông qua các vòng lặp.
  • Chuỗi bất biến: Vì các chuỗi là bất biến trong Java nên việc chuyển đổi chúng thành một mảng ký tự có thể hữu ích khi bạn cần thay đổi từng ký tự riêng lẻ.

Nhược điểm của việc sử dụng toCharArray():

  • Tăng mức sử dụng bộ nhớ: Phương thức toCharArray() tạo một mảng ký tự mới, yêu cầu thêm bộ nhớ. Đây có thể là một vấn đề nếu bạn đang làm việc với các chuỗi lớn.
  • Hiệu suất: Tạo một mảng ký tự mới và sao chép các ký tự có thể dẫn đến suy giảm hiệu suất so với các phương pháp khác, đặc biệt đối với các chuỗi dài.

Cách tách một chuỗi bằng phương thức Split()

Phương thức Split() trong Java là một cách thuận tiện để chia một chuỗi thành một mảng các chuỗi con dựa trên một dấu phân cách nhất định. Phương thức này có sẵn trong lớp String .

Cú pháp và cách sử dụng phương thức Split():

String[] split(String delimiter)
Phương thức này lấy đối số là một dấu phân cách, xác định các điểm mà tại đó chuỗi sẽ được chia. Dấu phân cách có thể là biểu thức chính quy hoặc một chuỗi đơn giản. Mã ví dụ thể hiện chuyển đổi bằng cách sử dụng Split() :
string = "Hello,World,How,Are,You?"
delimiter = ","

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

Giải thích quy trình:

  1. Chúng tôi xác định một biến chuỗi được gọi là string . Nó chứa văn bản mà chúng tôi muốn tách: “Xin chào, Thế giới, Thế nào, Bạn thế nào?”
  2. Chúng ta chỉ định dấu phân cách bằng dấu phẩy ( , ) mà chúng ta muốn sử dụng để phân tách chuỗi và gán nó cho biến dấu phân cách .
  3. Sau đó, chúng tôi sử dụng phương thức Split() trên biến chuỗi , chuyển dấu phân cách làm đối số . Việc này chia chuỗi thành các chuỗi con ở bất kỳ nơi nào có dấu phân cách .
  4. Phương thức Split() trả về một danh sách các chuỗi con mà chúng ta gán cho biến Split_string .
  5. Cuối cùng chúng ta in danh sách Split_string để xem kết quả.
Phần kết luận:
['Xin chào', 'Thế giới', 'Thế nào', 'Có', 'Bạn?']

Ưu điểm của việc sử dụng chia():

  • Thuận tiện và dễ sử dụng.
  • Cho phép bạn phân tách một chuỗi dựa trên dấu phân cách được chỉ định.
  • Hỗ trợ các biểu thức chính quy làm dấu phân cách, cung cấp các tùy chọn dấu phân cách linh hoạt.

Nhược điểm của việc sử dụng chia():

  • Nếu không tìm thấy dấu phân cách trong chuỗi thì chuỗi gốc sẽ được trả về dưới dạng một phần tử của mảng kết quả.
  • Biểu thức thông thường có thể khó sử dụng và sử dụng không đúng cách có thể dẫn đến kết quả không mong muốn.
  • Việc tách một chuỗi lớn bằng cách sử dụng biểu thức chính quy phức tạp có thể tốn kém về mặt tính toán.

Cách chuyển đổi chuỗi thành mảng bằng StringTokenizer

Lớp StringTokenizer trong Java là lớp kế thừa cung cấp một cách thuận tiện để mã hóa hoặc chia chuỗi thành các mã thông báo riêng lẻ. Nó thường được sử dụng để chuyển đổi một chuỗi thành một mảng bằng cách phân tách nó dựa trên một dấu phân cách được chỉ định.

Cú pháp và cách sử dụng StringTokenizer:

Để sử dụng StringTokenizer , trước tiên bạn cần tạo một phiên bản của lớp StringTokenizer , truyền một chuỗi và dấu phân cách làm tham số:
StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);
Mã mẫu:
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);
        }
    }
}

Giải thích quy trình:

  1. Mã bắt đầu bằng cách tạo một đối tượng StringTokenizer có tên tokenizer từ chuỗi đầu vào và được phân cách bằng "," .
  2. Phương thức countTokens() được sử dụng để lấy tổng số token có trong chuỗi đầu vào. Giá trị này được lưu trữ trong biến tokenCount .
  3. StringArray được gọi được tạo với kích thước bằng tokenCount .
  4. Phương thức nextToken() được sử dụng trong một vòng lặp để lặp lại từng mã thông báo và gán cho nó chỉ mục tương ứng trong stringArray .
  5. Cuối cùng, vòng lặp for được sử dụng để in từng phần tử trong tệp stringArray .
Phần kết luận:
Xin chào thế giới Bạn khỏe không?

Ứng dụng StringTokenizer

StringTokenizer có thể hữu ích trong nhiều tình huống khác nhau, bao gồm:
  • Phân tích cú pháp dữ liệu đầu vào có cấu trúc bằng dấu phân cách nhất quán.
  • Trích xuất các từ hoặc thành phần riêng lẻ từ một câu hoặc đoạn văn.
  • Tách các giá trị được phân tách bằng dấu phẩy thành các phần tử riêng lẻ.
  • Mã thông báo văn bản cho các tác vụ phân tích từ vựng hoặc xử lý ngôn ngữ.

Ưu điểm của việc sử dụng StringTokenizer:

  • Tính đơn giản: Cú pháp của StringTokenizer rất đơn giản và dễ hiểu, giúp người mới bắt đầu có thể tiếp cận được.
  • Hiệu quả: StringTokenizer hiệu quả về mặt bộ nhớ và hiệu suất so với các biểu thức thông thường hoặc phân tách dựa trên ký tự thủ công.
  • Dấu phân cách linh hoạt: Bạn có thể chỉ định nhiều dấu phân cách hoặc sử dụng một bộ dấu phân cách được xác định trước, cho phép mã thông báo chung.
  • Xử lý lặp: StringTokenizer cho phép bạn xử lý mã thông báo lặp đi lặp lại, giúp xử lý các chuỗi lớn mà không cần tải mọi thứ vào bộ nhớ cùng một lúc.

Nhược điểm của việc sử dụng StringTokenizer:

  • Chức năng hạn chế: StringTokenizer thiếu một số tính năng nâng cao có trong các lựa chọn thay thế hiện đại, chẳng hạn như biểu thức thông thường, mang lại tính linh hoạt cao hơn trong việc mã hóa các mẫu phức tạp .
  • Không hỗ trợ biểu thức chính quy: Không giống như các phương thức khác như phương thức Split() , StringTokenizer không thể sử dụng biểu thức chính quy làm dấu phân cách, điều này làm hạn chế khả năng mã thông báo của nó.
  • Không hỗ trợ mã thông báo trống: StringTokenizer không xử lý mã thông báo trống theo mặc định. Nếu bạn có các dấu phân cách liên tiếp, chúng sẽ được coi là một dấu phân cách duy nhất, điều này có thể dẫn đến kết quả không mong muốn.
  • Lớp không được dùng nữa: StringTokenizer là một phần của khung bộ sưu tập Java kế thừa và không triển khai giao diện Iterable , có nghĩa là nó không thể được sử dụng trong các vòng lặp for mở rộng .

Cách chuyển đổi thủ công từng ký tự của chuỗi thành phần tử mảng

Trong một số trường hợp nhất định, bạn có thể cần kiểm soát nhiều hơn quá trình chuyển đổi hoặc muốn tùy chỉnh nó cho phù hợp với yêu cầu cụ thể của mình. Trong những trường hợp như vậy, bạn có thể chuyển đổi chuỗi thành mảng bằng cách lặp lại thủ công từng ký tự trong chuỗi và gán chúng cho các phần tử riêng lẻ trong mảng. Mã mẫu thể hiện chuyển đổi thủ công:
string = "Hello, World!"
array = []

for char in string:
    array.append(char)

print(array)

Giải thích quy trình:

  1. Chúng tôi xác định một chuỗi biến chuỗi có giá trị "Xin chào, Thế giới!" .
  2. Chúng tôi khởi tạo một danh sách trống được gọi là mảng .
  3. Chúng tôi sử dụng vòng lặp for để lặp qua từng char trong chuỗi .
  4. Bên trong vòng lặp, chúng ta sử dụng phương thứcappend() để nối từng char vào mảng .
  5. Sau khi vòng lặp hoàn tất, chúng ta in mảng để xem kết quả.
Phần kết luận:
['H', 'e', ​​'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '! ']

Ưu điểm của việc chuyển đổi thủ công:

  • Cung cấp toàn quyền kiểm soát quá trình chuyển đổi.
  • Cho phép các ký tự được tùy chỉnh hoặc thao tác trước khi chúng được gán vào một mảng.
  • Hoạt động tốt khi bạn cần thực hiện thêm các thao tác trong quá trình chuyển đổi.

Nhược điểm của việc chuyển đổi thủ công:

  • Yêu cầu nhiều mã hơn và xử lý thủ công so với các phương thức tích hợp sẵn như toCharArray() hoặc Split() .
  • Có thể kém hiệu quả hơn đối với các chuỗi lớn do quá trình lặp thủ công.
  • Tăng nguy cơ xảy ra lỗi nếu thực hiện không đúng cách.
Ghi chú. Tốt hơn hết bạn nên chọn phương pháp chuyển đổi thủ công nếu cần thực hiện các thao tác đặc biệt trong quá trình chuyển đổi. Mặt khác, các phương thức tích hợp sẵn như toCharArray() hoặc Split() được khuyên dùng để đơn giản và hiệu quả .

So sánh các phương pháp khác nhau

toCharArray():

  • Phương pháp đơn giản và rõ ràng.
  • Trả về một mảng ký tự đại diện cho một chuỗi.
  • Thích hợp cho các chuyển đổi chung mà không có yêu cầu đặc biệt.

tách ra():

  • Tách một chuỗi thành một mảng dựa trên dấu phân cách đã chỉ định.
  • Hữu ích nếu bạn cần chia một chuỗi thành các chuỗi con.
  • Cung cấp sự linh hoạt trong việc chọn mẫu phân cách.

StringTokenizer:

  • Được thiết kế đặc biệt để mã thông báo chuỗi dựa trên dấu phân cách.
  • Cho phép bạn tùy chỉnh các ký tự phân cách.
  • Thích hợp khi bạn cần kiểm soát chi tiết quá trình mã thông báo.

Chuyển đổi thủ công:

  • Cung cấp toàn quyền kiểm soát quá trình chuyển đổi.
  • Cho phép bạn định cấu hình và thực hiện các thao tác bổ sung trên các ký hiệu.
  • Được khuyến nghị nếu cần có yêu cầu đặc biệt trong quá trình chuyển đổi.

Tại sao bạn cần biết cách chuyển đổi chuỗi thành mảng trong Java?

Tầm quan trọng của việc chuyển đổi chuỗi thành mảng trong Java nằm ở tính linh hoạt và linh hoạt mà nó mang lại cho việc xử lý dữ liệu. Dưới đây là một số lý do chính tại sao khả năng chuyển đổi chuỗi thành mảng lại quan trọng trong Java:
  • Thao tác dữ liệu. Mảng cung cấp một cách có cấu trúc để lưu trữ và thao tác dữ liệu trong Java. Bằng cách chuyển đổi một chuỗi thành một mảng, bạn có thể truy cập các ký tự hoặc chuỗi con riêng lẻ, sửa đổi dữ liệu và thực hiện nhiều thao tác khác nhau như sắp xếp, tìm kiếm hoặc lọc.
  • Các hoạt động thuật toán. Nhiều thuật toán và cấu trúc dữ liệu trong Java yêu cầu đầu vào ở dạng mảng. Bằng cách chuyển đổi một chuỗi thành một mảng, bạn có thể dễ dàng áp dụng các thuật toán này và thực hiện các thao tác như sắp xếp, đảo ngược hoặc truy xuất các phần tử cụ thể.
  • Phân tích và phân tích văn bản. Các chuỗi thường chứa dữ liệu có cấu trúc hoặc được phân tách, chẳng hạn như CSV (Giá trị được phân tách bằng dấu phẩy) hoặc JSON (Ký hiệu đối tượng JavaScript). Việc chuyển đổi một chuỗi thành một mảng cho phép bạn chia nhỏ và phân tích dữ liệu, cho phép phân tích, xử lý hoặc trích xuất thông tin cụ thể sâu hơn.
  • Thao tác với chuỗi. Trong khi các chuỗi có tập hợp các phương thức thao tác riêng, mảng cung cấp thêm tính linh hoạt. Việc chuyển đổi một chuỗi thành một mảng cho phép bạn sử dụng các thao tác dành riêng cho mảng, chẳng hạn như lập chỉ mục, cắt hoặc ghép nối, để quản lý dữ liệu hiệu quả hơn hoặc đáp ứng các yêu cầu định dạng nhất định.
  • Khả năng tương thích: Trong một số trường hợp, bạn có thể cần chuyển đổi một chuỗi thành một mảng để tương tác với các thư viện hoặc API yêu cầu dữ liệu đầu vào dựa trên mảng. Bằng cách thực hiện chuyển đổi, bạn có thể dễ dàng tích hợp dữ liệu chuỗi của mình với các thành phần bên ngoài, đảm bảo khả năng tương thích và cho phép trao đổi dữ liệu liền mạch.

Phần kết luận

Trong bài viết này, chúng ta đã thảo luận về các phương pháp khác nhau để chuyển đổi một chuỗi thành một mảng trong Java. Bạn đã tìm hiểu về bốn cách khác nhau: sử dụng phương thức toCharArray() , tách chuỗi bằng phương thức Split() , sử dụng StringTokenizer và chuyển đổi thủ công từng ký tự thành một phần tử mảng. Chúng tôi đã trình bày chi tiết từng phương pháp, bao gồm cú pháp, cách sử dụng, mã mẫu, ưu và nhược điểm của chúng.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION