Ví dụ 5: Thực hiện lại yêu cầu trong ví dụ 4 nhưng sử dụng vòng lặp repeat … while.
import UIKit var index = 0.0 repeat { print(index) index += 0.25 } while index <= 10
Lưu ý: Trong các vịng lặp có thể sử dụng các lệnh điều khiển như break và continue
giống như ngôn ngữ Java hay C/C++, … để thay đổi cách thực hiện lệnh bên trong vịng lặp (break sẽ thốt khỏi vịng lặp ngay cịn continue sẽ bỏ qua các câu lệnh sau nó và bắt đầu vòng lặp tiếp theo).
20
1.2.8 Xử lý chuỗi và ký tự trong Swift
String trong Swift là một tập hợp có thứ tự các ký tự. Cũng như nhiều ngơn ngữ lập trình khác, thao tác xử lý chuỗi String cũng là một trong những công việc thường gặp.
Khai báo chuỗi
Có một số cách khai báo chuỗi String khác nhau như dưới đây:
var strA = "Hello World!" // Nếu trong dấu "" khơng có ký tự thì được chuỗi rỗng var strB: String = "Hello World!"
var strC = String("Hello World!") // Nếu strC = String() thì nó là chuỗi rỗng var char1: Character = "A" // Khai biến kiểu ký tự
var char2 = "B" // Khai báo biến ký tự ẩn kiểu
var char3: Character = "" // Sai vì khơng thể khai báo ký tự rỗng hoặc hơn 1 ký tự. Lưu ý: Nếu muốn khai báo một chuỗi trên nhiều dịng thì đặt các dịng đó vào giữa """.
Một số thao tác xử lý trên chuỗi thông dụng
STT Thao tác xử lý Mơ tả, ví dụ
1 Kiểm tra chuỗi
rỗng var strA = String("Hello World!") if !strA.isEmpty {
print("Chuoi khong rong va co gia tri \(strA)") }
2 Nối chuỗi var strB = "Hello TDC"
let strC = strA + strB // strC chứa chuỗi ghép var name = "Cuong"
let greeting = "Xin chao ban \(name)"//Ghép chuỗi với biến 3 Đếm số ký tự let num = strB.count // Trả về số ký tự có trong chuỗi strB 4 So sánh chuỗi
== (bằng) và != (khác)
if strA == strB { // Kiểm tra khác nhau dùng != print("Hai chuoi bang nhau.")
} 5 Đưa ký tự
Unicode vào chuỗi
let strD = "Ky tu Unicde: \u{00BC}"
6 Duyệt chuỗi var strA = "Hello World!" for char in strA {
print(char, terminator: " ") // Mỗi ký tự cách nhau " ". }
7 Kiểm tra tiền tố var strA = "Hello World!"
strA.hasPrefix("He") // Cho kết quả true vì strA có tiền tố là chuỗi "He"
8 Kiểm tra hậu tố var strA = "Hello World!"
strA.hasSuffix("ld!") // Cho kết quả true vì strA có chứa hậu tố là chuỗi "ld!".
9 Chuyển chuỗi thành số nguyên, số thực
var strB = "12345"
let num: Int = Int(strB) // Cách 1 hoặc
let num: Int = (strB as NSString).integerValue // Cách 2 Với số thực làm tương tự.
10 So sánh < strA < strB So sánh theo thứ tự chữ cái từng ký tự. Ví dụ nếu var strA = "Hello World!"
var strB = "Hello Cuong!" thì khi đó strA < strB cho kết quả là false vì đến ký tự khác biệt là W so với C thì W lớn hơn. 11 Truy xuất chuỗi Trong Swift, để truy xuất từng phần tử của chuỗi cần truy xuất
thông qua chỉ số của chuỗi. Các hàm dưới đây cho phép lấy các chỉ số chuỗi để truy xuất:
var strA = "Hello World!"
let chiSoKyTuDau = strA.startIndex
let kyTuDauTien = strA[chiSoKyTuDau] // Là ký tự 'H' let chiSoKyTuCuoi = strA.index(before: strA.endIndex) let kyTuCuoi = strA[chiSoKyTuCuoi] // Là ký tự '!'
let chiSoKyTuThu7 = strA.index(strA.startIndex, offsetBy: 6) let kyTuThu7 = strA[chiSoKyTuThu7] // Là ký tự 'W'
12 Chèn thêm và cắt bớt trong chuỗi
var strA = "Hello World!" var strB = "Hello Cuong!"
// Ghép chuỗi strB vào ngay sau strA
strA.insert(contentsOf: strB, at: strA.endIndex) // Chèn thêm 1 ký tự '!' vào cuối strA
strA.insert("!", at: strA.endIndex) // Xoá bỏ ký tự cuối cùng trong strA
strA.remove(at: strA.index(before: strA.endIndex)) // Xoá bỏ từ ký tự trắng đến cuối chuỗi
let subRange = strA.index(strA.startIndex, offsetBy: 5)...strA.index(before: strA.endIndex)
strA.removeSubrange(subRange) 13 Nối biến ký tự
vào trong chuỗi
Khơng thể dùng tốn tử + để nối trực tiếp biến ký tự vào trong chuỗi được. Muốn nối ta dùng cách sau:
var strA = "Hello World" var char = "!"
strA = strA + char // Không được phép strA.append(char) // Ok
strA = "\(strA)\(char)" // Ok