Bagaimana saya bisa menghapus karakter terakhir dari variabel String menggunakan Swift? Tidak dapat menemukannya di dokumentasi.
Berikut ini contoh lengkapnya:
var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)
Jawaban:
Swift 4.0 (juga Swift 5.0)
Swift 3.0
API mendapatkan sedikit lebih swifty , dan sebagai hasilnya perpanjangan Foundation telah berubah sedikit:
Atau versi di tempat:
Terima kasih Zmey, Rob Allen!
Swift 2.0+ Way
Ada beberapa cara untuk mencapai ini:
Melalui ekstensi Foundation, meskipun tidak menjadi bagian dari perpustakaan Swift:
Menggunakan
removeRange()
metode (yang alter yangname
):Menggunakan
dropLast()
fungsi:Old String.Index (Xcode 6 Beta 4 +) Way
Karena
String
tipe dalam Swift bertujuan untuk memberikan dukungan UTF-8 yang sangat baik, Anda tidak dapat lagi mengakses indeks karakter / rentang / substring menggunakanInt
tipe. Sebaliknya, Anda menggunakanString.Index
:Atau (untuk contoh yang lebih praktis, tetapi kurang mendidik) Anda dapat menggunakan
endIndex
:Catatan: Saya menemukan ini sebagai titik awal yang bagus untuk memahami
String.Index
Cara Lama (pra-Beta 4)
Anda cukup menggunakan
substringToIndex()
fungsi tersebut, dengan menyediakan fungsi yang kurang dari panjangString
:sumber
substringToIndex
substringToIndex
bukansubstringFromIndex
. Itu tidak membuat Anda merasa salah mengira ini, izinkan saya memberi tahu Anda.substringToIndex
. Juga, pada Xcode 7, string tidak lagi memiliki.count
properti, sekarang hanya berlaku untuk karakter:string.characters.count
var truncated = name.substring(to: name.index(before: name.endIndex))
Fungsi global
dropLast()
bekerja pada urutan dan karenanya pada Strings:sumber
characters
properti pada String menghasilkan urutan, oleh karena itu sekarang Anda harus menggunakan:expression = expression.characters.dropLast()
expression = String(expression.characters.dropLast())
jika Anda ingin kembali sebagai StringSwift 4:
Di Swift 2, lakukan ini:
Saya merekomendasikan tautan ini untuk mendapatkan pemahaman tentang string Swift.
sumber
Swift 4/5
sumber
Ini adalah Formulir Ekstensi String :
untuk versi Swift lebih awal dari 1.2:
Pemakaian:
Referensi:
Lihat DOCS
sumber
Gunakan fungsinya
removeAtIndex(i: String.Index) -> Character
:sumber
Cara termudah untuk memotong karakter terakhir dari string adalah:
sumber
Cepat 4
atau
atau
sumber
sumber
sumber
Kategori cepat yang bermutasi:
Menggunakan:
sumber
Jawaban singkat (berlaku mulai 2015-04-16):
removeAtIndex(myString.endIndex.predecessor())
Contoh:
Meta:
Bahasa ini melanjutkan evolusinya yang cepat, menjadikan waktu paruh bagi banyak jawaban SO yang sebelumnya baik menjadi sangat singkat. Itu selalu terbaik untuk mempelajari bahasa dan merujuk ke dokumentasi nyata .
sumber
Dengan penggunaan jenis Substring baru:
Swift 4:
Cara yang lebih pendek:
sumber
Gunakan fungsinya
advance(startIndex, endIndex)
:sumber
Cara lain Jika Anda ingin menghapus satu atau lebih dari satu karakter dari akhir.
Di mana XX adalah jumlah karakter yang ingin Anda hapus.
sumber
Swift 3 (menurut dokumen ) 20 November 2016
sumber
Saya akan merekomendasikan menggunakan NSString untuk string yang ingin Anda manipulasi. Sebenarnya kalau dipikir-pikir itu sebagai pengembang saya tidak pernah mengalami masalah dengan NSString bahwa Swift String akan menyelesaikan ... Saya mengerti seluk-beluk. Tetapi saya belum memiliki kebutuhan aktual untuk mereka.
atau
atau
Dan kemudian seluruh dunia operasi string NSString sederhana terbuka untuk Anda.
Sebagai jawaban atas pertanyaan
sumber
The
dropLast()
fungsi menghilangkan elemen terakhir dari string.sumber
Swift 3 : Saat Anda ingin menghapus string tambahan:
sumber
Cepat 4.2
Saya juga menghapus karakter terakhir saya dari String (yaitu teks UILabel ) di aplikasi iOS
sumber
sumber
melengkapi kode di atas saya ingin menghapus awal string dan tidak dapat menemukan referensi di mana pun. Inilah cara saya melakukannya:
Ini memangkas 17 karakter dari awal string (total panjang string adalah 67 kita maju -50 dari akhir dan di sana Anda memilikinya.
sumber