- Chuỗi ký tự String
- Khởi tạo chuỗi ký tự
- Chuỗi rỗng
- Nối chuỗi
- Chèn biểu thức, biến, giá trị vào chuỗi
- So sánh hai chuỗi
- Chuỗi và ký tự
- Chèn vào hoặc loại bỏ bớt trong chuỗi
Kiểu ký tự Character và Chuối ký tự String
Trong Swift một ký tử có thể biểu diễn qua kiểu Character, tập hợp nhiều ký tự theo một thứ tự được gọi là chuỗi ký tự và nó có kiểu String
Ví dụ khai báo biến kiểu ký tự Character và chuỗi ký tự String
//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
(message.count) cho biết số lượng ký tự trong chuỗi. Thuộc tính isEmpty
là true thì đó là chỗi rỗng.
Khởi tạo String cụ thể
Một chuỗi ký tự cụ thể được thể hiện bằng cách gõ tập hợp các ký tự chứa trong dấu ""
ví dụ "Đây là một chuỗi"
Nếu trong code muốn đưa vào chuỗi cụ thể nằm trên nhiều dòng, thì nội dung của của được gõ giữa cặp ký kiệu """
, ví dụ:
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 có thể là rỗng (không chứa ký tự nào), để khởi tạo ra một chuỗi rỗng gán nó cho giá trị ""
hoặc khởi tạo với String()
, kiểm tra xem chuỗi có rỗng dùng bằng thuộc tính isEmpty
xem ví dụ:
var emptyString1: String = "" var emptyString2: String = String() if (emptyString1.isEmpty) { print("Chuỗi rỗng") }
Nối chuỗi
Hai chuỗi cụ thể có thể nối với nhau để tạo ra một chuỗi mới bằng toán tử +
hoặc một biến chuỗi nối thêm vào sau nó một chuỗi khác với toán tử +=
ví dụ:
var xinchao = "Xin chào "; var yourname = "XuanThuLab" var messageXinchao = xinchao + yourname; print(messageXinchao) //Xin chào XuanThuLab messageXinchao += ", bạn đang học Swift"; print(messageXinchao) //Xin chào XuanThuLab, bạn đang học Swift
Chèn biểu thức, biến ... vào chuỗi
Khởi tạo chuỗi có thể chèn vào giữa các ký tự của nó một biểu thức, biến ... để sau khởi tạo chuỗi thực sự đã gồm giá trị biểu thức ở vị trí chỉ định, làm điều này chỉ việc đưa biến, biểu thức vào một dấu ()
với tiền tố \
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ẽ thay bằng 5
, chỗ có biểu thức \(number * 2)
sẽ có giá trị thực tế là 10
So sánh hai chuỗi
Hai chuỗi giống nhau nếu các ký tự trong chuỗi hoàn toàn giống nhau (số lượng, thứ tự, giá trị trị ký tự). Kiểm tra giống nhau dùng toán tử ==
kiểm tra khác nhau dùng toán tử !=
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
Chuỗi và ký tự
Nếu muốn duyệt qua từng ký tự trong chuỗi thì sử dụng vòng lặp for ... in, ví dụ:
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 ký tự nằm trong chuỗi nó ở một vị trí có chỉ số nào đó gọi là index
(có kiểu Index), khi biết chỉ số index của ký tự trong chuỗi thì có thể lấy ký tự đó ra theo cách thức truy cập phần tử mảng: string[index]
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ỗistring.endIndex
chỉ số sau ký tự cuối cùngstring.index(before:index)
trả về chỉ số của ký tự phíaindex
string.index(after:index)
trả về chỉ số của ký tự sauindex
string.index(index, offsetBy:sokytu)
trả về chỉ số của ký tự cáchindex
một sokytu
var xtlab = "XUANTHULAB.NET" var indexChuDauTien:String.Index = xtlab.startIndex var indexChuChuoiCung = xtlab.index(before: xtlab.endIndex) var indexChu_CachDauTien5 = xtlab.index(indexChuDauTien, offsetBy: 5) print(xtlab[indexChuDauTien]) //X print(xtlab[indexChuChuoiCung]) //T print(xtlab[indexChu_CachDauTien5]) //H
Chèn thêm và cắt bớt trong chuỗi
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 xtlab = "XUANTHULAB.NET" xtlab.insert("!", at:xtlab.endIndex) print(xtlab) //XUANTHULAB.NET! xtlab.insert(contentsOf:" - Học Swift", at:xtlab.index(before:xtlab.endIndex)) print(xtlab) //XUANTHULAB.NET - 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
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