×

Tách chuỗi thành mảng với split() trong Swift

Trong lập trình iOS với Swift, việc thao tác và xử lý chuỗi là một trong những kỹ thuật cơ bản nhưng vô cùng quan trọng. Một trong những phương pháp phổ biến để làm việc với chuỗi là tách chuỗi thành mảng các phần tử con thông qua phương thức split(). Bài viết này sẽ hướng dẫn bạn cách sử dụng phương thức này hiệu quả trong Swift.

Cách sử dụng phương thức split()

Trong Swift, bạn có thể sử dụng phương thức split() để tách một chuỗi thành mảng các chuỗi con. Cú pháp cơ bản của phương thức split() là:

let array = string.split(separator: Character)

Trong đó, string là chuỗi bạn muốn tách và separator là ký tự hoặc chuỗi con dùng để tách.

Ví dụ cơ bản

Giả sử bạn có một chuỗi đơn giản chứa các từ được ngăn cách bởi dấu cách và bạn muốn tách nó thành mảng từng từ riêng lẻ, bạn có thể làm như sau:

let sentence = "Swift is a powerful language"
let words = sentence.split(separator: " ")
print(words)

Kết quả sẽ là:

["Swift", "is", "a", "powerful", "language"]

Sử dụng nhiều dấu tách

Bạn cũng có thể sử dụng các ký tự khác làm dấu tách. Ví dụ, nếu bạn có một chuỗi chứa các giá trị số và sử dụng dấu phẩy để phân tách:

let numbers = "1,2,3,4,5"
let numberArray = numbers.split(separator: ",")
print(numberArray)

Kết quả sẽ là:

["1", "2", "3", "4", "5"]

Lọc bỏ các phần tử rỗng

Phương thức split() có thể bỏ qua các phần tử rỗng nếu bạn sử dụng tham số omittingEmptySubsequences: true (mặc định là true). Đây là một ví dụ:

let stringWithEmptyElements = "one,two,,four"
let filteredArray = stringWithEmptyElements.split(separator: ",", omittingEmptySubsequences: true)
print(filteredArray)

Kết quả sẽ là:

["one", "two", "four"]

Giữ lại các phần tử rỗng

Nếu bạn muốn giữ lại các phần tử rỗng sau khi tách chuỗi, bạn cần đặt tham số omittingEmptySubsequences: false:

let stringWithEmptyElements = "one,two,,four"
let arrayWithEmptyElements = stringWithEmptyElements.split(separator: ",", omittingEmptySubsequences: false)
print(arrayWithEmptyElements)

Kết quả sẽ là:

["one", "two", "", "four"]

Tách chuỗi thành các mảng nhiều cấp

Trong một số trường hợp, bạn muốn tách chuỗi nhiều lần để tạo ra các mảng nhiều cấp. Ví dụ, bạn có một chuỗi đại diện cho bảng CSV với các hàng và cột:

let csvData = "name,age,city\nJohn,24,New York\nAnna,22,London"
let rows = csvData.split(separator: "\n")
var table: [[String]] = []

for row in rows {
    let columns = row.split(separator: ",")
    table.append(columns.map { String($0) })
}

print(table)

Kết quả sẽ là:

[["name", "age", "city"], ["John", "24", "New York"], ["Anna", "22", "London"]]

Kết luận

Phương thức split() trong Swift là một công cụ mạnh mẽ và linh hoạt để xử lý chuỗi. Từ việc tách các từ, số, hoặc các giá trị phức tạp hơn như dữ liệu CSV, split() cung cấp một cách tiếp cận đơn giản nhưng hiệu quả cho các nhu cầu xử lý chuỗi của bạn. Với các tùy chọn linh hoạt, bạn có thể dễ dàng kiểm soát cách chia nhỏ chuỗi để phù hợp với nhu cầu cụ thể của dự án lập trình của mình.

Comments