Jadi saya bisa melakukan ini:
var stringNumb: NSString = "1357"
var someNumb: CInt = stringNumb.intValue
Tapi saya tidak dapat menemukan cara untuk melakukannya dengan String
. Saya ingin melakukan sesuatu seperti:
var stringNumb: String = "1357"
var someNumb: Int = Int(stringNumb)
Ini juga tidak bekerja:
var someNumbAlt: Int = myString.integerValue
var someNumb: Int? = Int(stringNumb)
atauvar someNumb = Int(stringNumb)
Jawaban:
Swift 2.0 Anda dapat menginisialisasi Integer menggunakan konstruktor
sumber
toInt()
metode sebagai bagian dariString
. JadiInt
konstruktor ini sekarang satu-satunya cara untuk mengubah string menjadi int.Saya akan menggunakan:
Catatan
toInt()
:sumber
var someNumb: Int = stringNumber.toInt()!
seperti yang ditunjukkan oleh NateCook!
pada panggilan, Anda dapat mendeklarasikan variabel Anda sebagai opsional:someNumb: Int? = stringNumber.toInt()
. Maka sistem jenis keamanan akan menyadari bahwafoo
mungkin tidak ada. Puting!
tentu saja akan macet jika string Anda tidak dapat dikonversi ke nomor.Di Swift 3.0
Tipe 1: Konversi NSString ke String
Tipe 2: Jika String hanya memiliki Integer
Tipe 3: Jika String memiliki nilai Float
sumber
stringToFloat
yaitu!= nil
, Anda harus menggunakanif let
.Metode yang Anda inginkan adalah
toInt()
- Anda harus sedikit berhati-hati, karenatoInt()
mengembalikan Int opsional.sumber
toInt()
adalah Jalan yang Benar untuk melakukannya. opsional adalah bagian inti dari bahasaJika Anda dapat menggunakan
NSString
hanya.Ini sangat mirip dengan objektif-c. Semua tipe data ada tetapi membutuhkan
as NSString
penambahanKami juga memiliki
toInt()
fungsi yang ditambahkan Lihat Apple Inc. “Bahasa Pemrograman Swift.” iBooks. https://itun.es/us/jEUH0.l halaman 49sumber
as NSString
. memperbaikinya @ gwcoffeyjawaban di atas tidak membantu saya karena nilai string saya adalah "700,00"
dengan Swift 2.2 ini bekerja untuk saya
Saya meneruskan myInt ke NSFormatterClass
Terima kasih untuk posting blog ini .
sumber
Double()
cara yang sama kita gunakanInt()
. Tidak perlu menggunakan bridging ke NSString.Double()
lalu menggunakanInt()
. Seperti ini:if let d = Double("700.00") { let i = Int(d); print (i) }
:)Anda dapat menjembatani dari String ke NSString dan mengonversi dari CInt ke Int seperti ini:
sumber
Saya menulis ekstensi untuk tujuan itu. Itu selalu mengembalikan sebuah
Int
. Jika string tidak cocok denganInt
, 0 dikembalikan.sumber
return self.toInt() ?? 0
. Mungkin lebih baik hanya menulis seperti itu sebaris daripada memiliki metode ekstensi untuk ini.Solusi yang lebih umum bisa berupa perpanjangan
ini misalnya memperluas objek String asli dengan toFloat
sumber
Konversi String ke Int di Swift 2.0:
menggunakan
.intergerValue or intValue for Int32
sumber
8: 1 Peluang (*)
atau
Int(String)
mengembalikan opsionalInt?
, bukanInt
.Penggunaan yang aman: jangan secara terbuka membuka
atau
(*) Tidak ada jawaban yang menjawab mengapa
var someNumb: Int = Int(stringNumb)
tidak bekerja.sumber
Cara sederhana tapi kotor
Cara ekstensi
Ini lebih baik, sungguh, karena itu akan bermain bagus dengan lokal dan desimal.
Sekarang Anda bisa melakukannya:
sumber