Diperbarui untuk Swift 4
Memeriksa dengan apa String dimulai dan diakhiri
Anda dapat menggunakan metode hasPrefix(_:)
dan hasSuffix(_:)
untuk menguji kesetaraan dengan String lain.
let str = "Hello, playground"
if str.hasPrefix("Hello") { // true
print("Prefix exists")
}
if str.hasSuffix("ground") { // true
print("Suffix exists")
}
Mendapatkan Awalan Aktual dan Substring Akhiran
Untuk mendapatkan prefiks atau sufiks substring yang sebenarnya, Anda dapat menggunakan salah satu metode berikut. Saya merekomendasikan metode pertama karena kesederhanaannya. Semua metode digunakan str
sebagai
let str = "Hello, playground"
Metode 1: (Disarankan) prefix(Int)
dansuffix(Int)
let prefix = String(str.prefix(5)) // Hello
let suffix = String(str.suffix(6)) // ground
Ini adalah metode yang lebih baik menurut saya. Berbeda dengan metode 2 dan 3 di bawah, metode ini tidak akan crash jika indeks melampaui batas. Ini hanya akan mengembalikan semua karakter dalam string.
let prefix = String(str.prefix(225)) // Hello, playground
let suffix = String(str.suffix(623)) // Hello, playground
Tentu saja, terkadang error itu bagus karena memberi tahu Anda bahwa ada masalah dengan kode Anda. Jadi pertimbangkan juga metode kedua di bawah ini. Ini akan membuat kesalahan jika indeks melampaui batas.
Metode 2: prefix(upto:)
dansuffix(from:)
Indeks Swift String rumit karena harus mempertimbangkan karakter khusus (seperti emoji). Namun begitu Anda mendapatkan indeks, mudah untuk mendapatkan awalan atau sufiks. (Lihat jawaban saya yang lain di 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
Jika Anda ingin menjaga agar tidak keluar batas, Anda dapat membuat indeks menggunakan limitedBy
(sekali lagi, lihat jawaban ini ).
Metode 3: langganan
Karena String adalah sebuah koleksi, Anda dapat menggunakan subskrip untuk mendapatkan prefiks dan sufiks.
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
Bacaan lebih lanjut