Saya perlu membuat string dengan format yang dapat mengkonversi tipe int, panjang, ganda dll menjadi string. Menggunakan Obj-C, saya bisa melakukannya melalui cara di bawah ini.
NSString *str = [NSString stringWithFormat:@"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE];
Bagaimana caranya melakukan hal yang sama dengan swift?
NSString
dalamFoundation
kerangka . Jadi, Anda harusimport Foundation
membuat ini berfungsi dengan benar. Kalau tidak, ekspresi akan memanggilString.init<T>(T)
, dan itu akan menghasilkan sesuatu seperti"(\"%@%x %x\", 10)"
bukan.%@%x
arti simbol? Bisakah Anda mengarahkan saya ke sumber di mana saya bisa belajar lebih banyak tentang hal itu.tidak ada yang spesial
sumber
Pembaruan: Saya menulis jawaban ini sebelum Swift
String(format:)
menambahkan ke API-nya. Gunakan metode yang diberikan oleh jawaban teratas .sumber
String(format:arguments:)
akan lebih tepat untuk menambahkan pemformatan-stringWithFormat:
yang memungkinkan pemformatan. Dalam Swift,String(format:arguments:)
akan menjadi versi Swift Obj-C-stringWithFormat:
NSString
metode belum diterapkan di SwiftString
.Tidak
NSString
diperlukan!atau
sumber
Saya berpendapat bahwa keduanya
dan
keduanya dapat diterima karena pengguna bertanya tentang pemformatan dan kedua kasus sesuai dengan apa yang mereka minta:
Jelas yang pertama memungkinkan kontrol yang lebih baik atas format daripada yang terakhir, tetapi itu tidak berarti yang terakhir bukanlah jawaban yang dapat diterima.
sumber
sumber
Pertama baca dokumentasi resmi untuk bahasa Swift.
Jawabannya seharusnya
Sini
1) Setiap nilai floating point secara default
double
-> Jika Anda ingin menampilkan nilai floating point maka Anda perlu secara eksplisit mendefinisikan seperti
Ini jauh lebih jelas.
sumber
sumber
Saya tahu banyak waktu telah berlalu sejak penerbitan ini, tetapi saya telah jatuh dalam situasi yang sama dan membuat kelas sederhana untuk menyederhanakan hidup saya.
Tautan ikuti kirim ke kode sumber lengkap: https://gist.github.com/dedeexe/d9a43894081317e7c418b96d1d081b25
Solusi ini didasarkan pada artikel ini: http://vojtastavik.com/2015/03/29/real-time-formatting-in-uitextfield-swift-basics/
sumber
Ada solusi sederhana yang saya pelajari dengan "We <3 Swift" jika Anda tidak dapat mengimpor Foundation , gunakan round () dan / atau tidak ingin String :
hasil: 31.726
sumber
Gunakan kode berikut ini:
sumber
Berhasil mencobanya:
sumber