Saya mencoba membuat sistem koreksi otomatis, dan ketika pengguna mengetik kata dengan huruf besar, koreksi otomatis tidak berfungsi. Untuk memperbaikinya, saya membuat salinan dari string yang diketik, diterapkan .lowercaseString, dan kemudian membandingkannya. Jika string tersebut salah ketik, seharusnya kata tersebut diperbaiki. Namun kemudian kata yang menggantikan kata yang diketik semuanya huruf kecil. Jadi saya perlu menerapkan .uppercaseString hanya huruf pertama. Awalnya saya pikir saya bisa menggunakan
nameOfString[0]
tetapi ini tampaknya tidak berhasil. Bagaimana saya bisa mendapatkan huruf pertama dari string menjadi huruf besar, dan kemudian dapat mencetak string penuh dengan huruf pertama dikapitalisasi?
Terima kasih atas bantuannya!
sumber
.capitalizedString
tidak lagi berfungsi di Xcode 7 Beta 4. String telah sedikit berubah di Swift 2.0.Foundation
senyum malu-malu.uppercaseString
untuk itu.capitalized
. Perhatikan jugacapitalizedStringWith(_ locale:)
Swift 5.1 atau lebih baru
Cepat 5
sumber
UITextField
pengamatUITextFieldTextDidChangeNotification
.untuk "Hello World"
atau untuk "HELLO WORLD"
sumber
Cepat 4.0
atau
Namun ini huruf kapital huruf pertama dari setiap kata
Dokumentasi Apple:
sumber
Untuk Swift 5:
sumber
isEmpty
dan menginisialisasi string untuk mengganti. Anda dapat dengan mudah membuka karakter pertama dan jika gagal hanya mengembalikan nol. Ini dapat disederhanakan sebagaivar firstCharacterUpperCase: String? { guard let first = first else { return nil } return lowercased().replacingCharacters(in: startIndex...startIndex, with: first.uppercased()) }
Untuk karakter pertama dalam kata, gunakan
.capitalized
dengan cepat dan untuk penggunaan seluruh kata.uppercased()
sumber
Swift 2.0 (baris tunggal):
sumber
.localizedLowercaseString
di akhir untuk membuatnya bekerja dengan string seperti: aNYsTring.String(nameOfString.characters.prefix(1)).uppercaseString + String(nameOfString.characters.dropFirst()).localizedLowercaseString
Swift 3 (xcode 8.3.3)
Huruf besar semua karakter string pertama
Huruf besar semua karakter
Huruf besar hanya karakter pertama dari string
sumber
Cepat 5
https://www.hackingwithswift.com/example-code/strings/how-to-capitalize-the-first-letter-of-a-string
gunakan dengan string Anda
sumber
Saya mendapatkan karakter pertama diduplikasi dengan solusi Kirsteins. Ini akan menggunakan huruf besar karakter pertama, tanpa melihat ganda:
Saya tidak tahu apakah ini lebih atau kurang efisien, saya hanya tahu itu memberi saya hasil yang diinginkan.
sumber
countElements
adilcount
.Dari Swift 3 Anda dapat dengan mudah menggunakan
textField.autocapitalizationType = UITextAutocapitalizationType.sentences
sumber
Berikut adalah versi untuk Swift 5 yang menggunakan properti skalar properti Unicode untuk menebus jika huruf pertama sudah huruf besar, atau tidak memiliki gagasan kasus:
sumber
return first.uppercased() + dropFirst()
atau satu liner(first?.uppercased() ?? "") + dropFirst()
Memanfaatkan karakter pertama dalam string
sumber
Di Swift 3.0 (ini sedikit lebih cepat dan lebih aman daripada jawaban yang diterima):
nameOfString.capitalized tidak akan berfungsi , itu akan memanfaatkan setiap kata dalam kalimat
sumber
Penghargaan untuk Leonardo Savio Dabus:
Saya membayangkan sebagian besar kasus penggunaan adalah untuk mendapatkan Casing yang Tepat:
sumber
Solusi saya:
sumber
Menggabungkan jawaban di atas, saya menulis ekstensi kecil yang menggunakan huruf kapital dari setiap kata (karena itulah yang saya cari dan saya pikir orang lain bisa menggunakannya).
Dengan rendah hati saya serahkan:
sumber
Cepat 4
sumber
Inilah cara saya melakukannya dalam langkah-langkah kecil, mirip dengan @ Kirstein.
sumber
Juga berfungsi, cukup masukkan string Anda dan dapatkan kembali dengan huruf besar.
sumber
Pembaruan Swift 3
The
replaceRange
func sekarangreplaceSubrange
sumber
Saya setuju dengan versi ini, yang merupakan versi bersih dari jawaban lain:
Itu berusaha untuk menjadi lebih efisien dengan hanya mengevaluasi karakter diri sekali, dan kemudian menggunakan bentuk yang konsisten untuk membuat sub-string.
sumber
Swift 4 (Xcode 9.1)
sumber
capitalized
tepat untuk tujuan iniJika Anda ingin menggunakan huruf kapital setiap kata string, Anda dapat menggunakan ekstensi ini
Swift 4 Xcode 9.2
Bekas
sumber
.capitalized
Jika string Anda semua huruf besar maka metode di bawah ini akan berfungsi
Ekstensi ini akan membantu Anda
sumber
.capitalized
.capitalized
akan kembali (This Is A Boy) dan metode ini akan kembali (Ini adalah anak laki-laki) Keduanya berbeda. (Tolong jangan + Pilih atau Hapus negatif)return first.uppercased() + dropFirst()
atau satu liner kembali(first?.uppercased() ?? "") + dropFirst()
Tambahkan baris ini dalam metode viewDidLoad ().
sumber
sumber
Untuk swift 5, Anda dapat melakukannya seperti itu:
Contoh: "abc" -> "Abc"
sumber