Saya memiliki kode sederhana berikut yang ditulis dalam Swift 3:
let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)
Dari Xcode 9 beta 5, saya mendapatkan peringatan berikut:
'
substring(to:)
' sudah usang: Silakan gunakanString
slicing subscript dengan operator 'rentang sebagian dari'.
Bagaimana subskrip pengiris ini dengan rentang sebagian dapat digunakan di Swift 4?
Jawaban:
Anda harus membiarkan satu sisi kosong , karenanya nama "rentang parsial".
Kepanjangan yang sama untuk rentang parsial dari operator, biarkan sisi lain kosong:
Perlu diingat bahwa operator jangkauan ini mengembalikan a
Substring
. Jika Anda ingin mengubahnya menjadi string, gunakanString
fungsi inisialisasi:Anda dapat membaca lebih lanjut tentang substring baru di sini .
sumber
str[..<index]
mengembalikan aSubstring
. Jika Anda inginnewStr
menjadi seorangString
Anda harus menulis:let newStr = "\(str[..<index])"
Substring
mungkin sedikit membingungkan, karena apa yang Anda benar-benar capai adalahString
inisialisasi:let newStr = String(str[..<index])
.Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo<Int>'
,. Jenis nilai apa yang harus digunakan di sana?str[..<str.index(str.startIndex, offsetBy: 8)]
atau sesuatu seperti itu. Ingatlah bahwa itustr.index
adalah operasi linear-waktu dalam fungsioffsetBy
.str.prefix(8)
Konversi Substring (Swift 3) ke String Slicing (Swift 4)
Contoh dalam Swift 3, 4:
sumber
Cepat 5, 4
Pemakaian
Kode
sumber
Lebih pendek dalam Swift 4/5:
sumber
Konversi kode Anda ke Swift 4 juga dapat dilakukan dengan cara ini:
Anda dapat menggunakan kode di bawah ini untuk memiliki string baru:
sumber
substring (from: index) Dikonversi ke [indeks ...]
Periksa sampel
sumber
Swift5
(Metode substring Java):
Pemakaian:
sumber
from
untukto-1
, misalnya"Hello".substring(1,4)
mengembalikan "ell"). Dengan modifikasi kecil (startIndex..<endIndex
) ini adalah solusi terbaik yang saya temukan sejauh ini yang tidak persis hanya dengan beberapa baris kode.Beberapa ekstensi bermanfaat:
sumber
Contoh
uppercasedFirstCharacter
properti praktis di Swift3 dan Swift4.Properti
uppercasedFirstCharacterNew
mendemonstrasikan cara menggunakan subscript String slicing di Swift4.sumber
Anda dapat membuat metode subString khusus menggunakan ekstensi ke String kelas seperti di bawah ini:
sumber
Membuat SubString (awalan dan akhiran) dari String menggunakan Swift 4:
Keluaran
Jika Anda ingin membuat substring antara 2 indeks, gunakan:
sumber
Saya telah menulis ekstensi string untuk penggantian 'String: subString:'
PS: Opsional dipaksa untuk membuka. Silakan tambahkan Jenis pemeriksaan keamanan bila perlu.
sumber
Saat pemrograman saya sering memiliki string hanya dengan A-Za-z dan 0-9. Tidak perlu untuk tindakan Indeks yang sulit. Ekstensi ini didasarkan pada fungsi kiri / tengah / kanan tua polos.
sumber
dengan metode ini Anda bisa mendapatkan rentang string tertentu. Anda harus melewati indeks mulai dan setelah jumlah karakter yang Anda inginkan.
sumber
Ini solusi saya, tidak ada peringatan, tidak ada kesalahan, tetapi sempurna
sumber
encodedOffset
yang dianggap berbahaya dan akan ditinggalkan .Semoga ini sedikit membantu: -
Jika Anda ingin substring setelah beberapa indeks tertentu.
Jika Anda menginginkan substring setelah melepas beberapa string di bagian akhir.
Anda juga dapat membuat indeks dengan kode berikut: -
sumber
Semoga bermanfaat.
sumber
Anda dapat mencoba dengan cara ini dan akan mendapatkan hasil yang tepat.
sumber