cập nhật cho Swift 4
kiểm tra những gì một chuỗi bắt đầu với và kết thúc với
Bạn có thể sử dụng các phương pháp hasPrefix(_:)
và hasSuffix(_:)
để kiểm tra bình đẳng với string khác.
let str = "Hello, playground"
if str.hasPrefix("Hello") { // true
print("Prefix exists")
}
if str.hasSuffix("ground") { // true
print("Suffix exists")
}
Lấy thực tế Prefix và Suffix chuỗi con
Để có được tiền tố hoặc hậu tố thực tế chuỗi, bạn có thể sử dụng một trong những phương pháp sau đây. Tôi đề nghị phương pháp đầu tiên cho sự đơn giản của nó. Tất cả các phương pháp sử dụng str
như
let str = "Hello, playground"
Phương pháp 1: (Recommended) prefix(Int)
và suffix(Int)
let prefix = String(str.prefix(5)) // Hello
let suffix = String(str.suffix(6)) // ground
Đây là phương pháp tốt hơn trong quan điểm của tôi. Không giống như các phương thức 2 và 3 bên dưới, phương pháp này sẽ không sụp đổ nếu các chỉ mục vượt quá giới hạn. Nó sẽ chỉ trả về tất cả các ký tự trong chuỗi.
let prefix = String(str.prefix(225)) // Hello, playground
let suffix = String(str.suffix(623)) // Hello, playground
Tất nhiên, đôi khi sự cố là tốt vì chúng cho bạn biết có sự cố với mã của bạn. Vì vậy, hãy xem xét phương pháp thứ hai bên dưới là tốt. Nó sẽ ném một lỗi nếu chỉ mục vượt quá giới hạn.
Cách 2: prefix(upto:)
và suffix(from:)
chỉ Chuỗi Swift là khó khăn vì họ phải đưa vào tài khoản ký tự đặc biệt (như biểu tượng cảm xúc). Tuy nhiên một khi bạn nhận được chỉ mục nó rất dễ dàng để có được tiền tố hoặc hậu tố. (Xem my other answer trên String.Index
.)
let prefixIndex = str.index(str.startIndex, offsetBy: 5)
let prefix = String(str.prefix(upTo: prefixIndex)) // Hello
let suffixIndex = str.index(str.endIndex, offsetBy: -6)
let suffix = String(str.suffix(from: suffixIndex)) // ground
Nếu bạn muốn bảo vệ chống lại đi ra ngoài giới hạn, bạn có thể làm cho một chỉ số sử dụng limitedBy
(một lần nữa, xem this answer).
Phương pháp 3: subscript
Kể từ String là một bộ sưu tập, bạn có thể sử dụng kí hiệu để có được những tiền tố và hậu tố.
let prefixIndex = str.index(str.startIndex, offsetBy: 5)
let prefix = String(str[..<prefixIndex]) // Hello
let suffixIndex = str.index(str.endIndex, offsetBy: -6)
let suffix = String(str[suffixIndex...]) // ground
Tiếp tục đọc