Bài 7: Chuỗi ký tự trong Swift - Character và String - Lập trình Swift cơ bản

Đăng bởi: Admin | Lượt xem: 4035 | Chuyên mục: Swift


Chuỗi ký tự String và ký tự Character

Một ký tự có thể được biểu diễn qua Character và tập hợp nhiều ký tự đó theo thứ tự thì nó được gọi là chuỗi ký tự kiểu String trong Swift.
Bạn có thể tham khảo ví dụ dưới đây.
//Khai báo một biến chuỗi

var message: String = "Xin chào Swift"

//Khai báo một biến Character

var firstChar: Character = "X"
Biến chuỗi có thuộc tính count sẽ cho biết số lượng ký tự nằm trong chuỗi và chuỗi rỗng khi thuộc tính isEmpty true.

Hướng dẫn khởi tạo String 

Để khởi tạo một chuỗi ký tự cụ thể, bạn phải gõ tập hợp các ký tự chứa trong dấu ngoặc kép “” ví dụ "Đây là một chuỗi"
Nếu muốn đưa chuỗi nằm trên nhiều dòng vào trong code thì bạn phải gõ nội dung giữa các cặp ký hiệu """.
Bạn có thể tham khảo ví dụ dưới đây:
var baitho = """

Dữ dội và dịu êm

Ồn ào và lặng lẽ

Sông không hiểu nổi mình

Sóng tìm ra tận bể

"""
Chèn ký tự đặc biệt: các ký tự đặc biệt được điền vào chuỗi sau ký hiệu \ ví dụ \" tương ứng với ", \n ký tự xuống dòng, \r ký tự về đầu dòng, \' ký hiệu ', \u{xxx} chèn ký tự có mã Unicode là xxx ( Unicode Code)

Chuỗi rỗng 

Một biến String không chứa ký tự nào sẽ được gọi là chuỗi rỗng, để khởi tạo chuỗi rộng này bạn có thể gán cho nó 1 giá trị "" hoặc khởi tạo với String(), và sử dụng isEmpty để xem chuỗi có rỗng hay không.
var emptyString1: String = ""

var emptyString2: String = String()

if (emptyString1.isEmpty) {

    print("Chuỗi rỗng")

}

Nối chuỗi 

Bằng việc sử dụng toán tử + bạn hoàn toàn có thể nối 2 chuỗi riêng lẻ thành một chuỗi 
var xinchao = "Xin chào ";

var yourname = "vncoder"

var messageXinchao = xinchao + vncoder;

print(messageXinchao) //Xin chào vncoder

messageXinchao += ", bạn đang học Swift";

print(messageXinchao) //Xin chào vncoder, bạn đang học Swift

Chèn biểu thức, biến… vào chuỗi 

Để khởi tạo chuỗi, bạn có thể chèn giữa các ký tự bằng một biểu thức hoặc một biến,.. Khi đó chuỗi đã gồm giá trị biểu thức ở vị trí chọn lựa do đó bạn chỉ cần đưa biểu thức hay biến vào  () hoặc  \
var number = 5;

var kq = "\(number) * 2 bằng \(number * 2)"

print(kq)

//5 * 2 bằng 10
Trong chuỗi trên thì ký hiệu \(number) sẽ được thay bằng số 5 và chỗ có biểu thức \(number * 2) sẽ có giá trị là 10.

So sánh hai chuỗi 

Khi các ký tự trong chuỗi bao gồm số lượng, giá trị ký tự và thứ tự ký tự giống nhau hoàn toàn thì hai chuỗi đó được gọi là hai chuỗi giống nhau. Bạn có thể dùng toán tử  == , !=  để kiểm tra sự giống và khác nhau của chuỗi.
let s1 = "Đây là một chuỗi"

let s2 = "Đây là một chuỗi"

if s1 == s2 {

   print("Hai chuỗi giống nhau")

}

//Hai chuỗi giống nhau

Ký tự và chuỗi 

Sử dụng vòng lặp for...in để duyệt qua từng ký tự trong chuỗi 
var w = "WED"

for c in w {

    print(c)

}

//W

//E

//D

Một chuỗi có thể khởi tạo từ một mảng các ký tự

let achar: [Character] = ["X","T","L"]

let stringM = String(achar)

print(stringM)

//XTL
Mỗi một ký tự trong chuỗi ở các vị trí sẽ có chỉ số nào đó được gọi là index và bạn có thể lấy ký tự đó ra bằng việc truy cập phần tử mảng string[index] khi biết chỉ số index của ký tự.
Dùng các thuộc tính, phương thức sau để tìm index của một ký tự:
  • string.startIndex chỉ số ký tự đầu tiên của chuỗi
  • string.endIndex chỉ số sau ký tự cuối cùng
  • string.index(before:index) trả về chỉ số của ký tự phía index
  • string.index(after:index) trả về chỉ số của ký tự sau index
  • string.index(index, offsetBy:sokytu) trả về chỉ số của ký tự cách index một sokytu
var string = "vncoder!"

var indexChuDauTien:String.Index = string.startIndex

var indexChuChuoiCung = string.index(before: string.endIndex)

var indexChu_CachDauTien5 = string.index(indexChuDauTien, offsetBy: 5)

print(string[indexChuDauTien])           //v

print(xtlab[indexChuChuoiCung])         //!

print(xtlab[indexChu_CachDauTien5])     //r

Chèn một ký tự vào vị trí có chỉ số là index dùng phương thức string.insert(kytu, at:index)

Chèn một chuỗi ký tự vào vị trí có chỉ số là index dùng phương thức string.insert(contentsOf:choikytu, at:index)
var string = "vncoder!"

string .insert("!", at:xtlab.endIndex)

print(string ) //vncoder!

string .insert(contentsOf:" - Học Swift", string .index(string .endIndex))

print(string ) //vncoder - Học Swift!

Nếu muốn loại bỏ 1 ký tự có chỉ số là index thì dùng string.remove(at:index)

Nếu muốn loại bỏ cả một chuỗi con, thì cần chỉ ra một dải từ chỉ số đầu đến cuối của chuỗi con cần cắt trong phuwng thức string.removeSubrange(range)

var lts = "Lập trình Swift!"

//Xóa ký tự cuối

lts.remove(at:lts.index(before:lts.endIndex));

print(lts) //Lập trình Swift

//Dải từ ký tự đầu tiến đến ký tự thứ tự 9

let catbot = lts.startIndex...lts.index(lts.startIndex, offsetBy:9)

lts.removeSubrange(catbot)

print(lts) //Swift
Bài tiếp theo: Vòng lặp trong swift – Loops >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!