Kotlin memiliki fitur luar biasa yang disebut templat string. Saya sangat menyukainya.
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Tetapi apakah mungkin untuk memiliki pemformatan di template? Sebagai contoh, saya ingin memformat Templat string dobel di kotlin, setidaknya untuk menetapkan jumlah digit setelah pemisah desimal:
val pi = 3.14159265358979323
val s = "pi = $pi??" // How to make it "pi = 3.14"?
string-formatting
kotlin
MajesticRa
sumber
sumber
Jawaban:
Sayangnya, belum ada dukungan bawaan untuk memformat dalam templat string, sebagai solusi, Anda dapat menggunakan sesuatu seperti:
yang
.format(n)
fungsi Anda akan perlu untuk mendefinisikan diri sendiri sebagaiJelas ada fungsi di sini yang hilang dari Kotlin saat ini, kami akan memperbaikinya.
sumber
Sebagai solusinya, Ada fungsi stdlib Kotlin yang dapat digunakan dengan cara yang baik dan sepenuhnya kompatibel dengan format String Java (itu hanya pembungkus di sekitar Java
String.format()
)Lihat dokumentasi Kotlin
Kode Anda adalah:
sumber
Kelas String Kotlin memiliki fungsi format sekarang, yang secara internal menggunakan
String.format
metode Java :Pemakaian
sumber
Sederhana, Gunakan:
sumber
Karena
String.format
hanya fungsi ekstensi (lihat di sini ) yang secara internal memanggiljava.lang.String.format
Anda dapat menulis fungsi ekstensi Anda sendiri menggunakan Java's DecimalFormat jika Anda membutuhkan lebih banyak fleksibilitas:sumber
Beberapa contoh:
sumber