Kotlin a une excellente fonctionnalité appelée modèles de chaînes. Je l'aime vraiment.
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Mais est-il possible d'avoir une mise en forme dans les modèles? Par exemple, je voudrais formater Double dans des modèles de chaîne en kotlin, au moins pour définir un nombre de chiffres après un séparateur décimal:
val pi = 3.14159265358979323
val s = "pi = $pi??" // How to make it "pi = 3.14"?
string-formatting
kotlin
MajesticRa
la source
la source
Réponses:
Malheureusement, il n'y a pas encore de support intégré pour le formatage dans les modèles de chaîne, comme solution de contournement, vous pouvez utiliser quelque chose comme:
la
.format(n)
fonction dont vous auriez besoin pour vous définirIl y a clairement un élément de fonctionnalité qui manque à Kotlin pour le moment, nous allons le corriger.
la source
Comme solution de contournement, il existe une fonction stdlib de Kotlin qui peut être utilisée de manière agréable et entièrement compatible avec le format String de Java (ce n'est qu'un wrapper autour de Java
String.format()
)Voir la documentation de Kotlin
Votre code serait:
la source
La classe String de Kotlin a maintenant une fonction de formatage , qui utilise en interne la
String.format
méthode Java :Usage
la source
C'est simple, utilisez:
la source
Étant donné qu'il
String.format
ne s'agit que d'une fonction d'extension (voir ici ) qui appelle en interne,java.lang.String.format
vous pouvez écrire votre propre fonction d'extension en utilisant DecimalFormat de Java si vous avez besoin de plus de flexibilité:la source
Quelques exemples:
la source