Kotlin hat eine hervorragende Funktion namens String-Vorlagen. Ich liebe es wirklich.
val i = 10
val s = "i = $i" // evaluates to "i = 10"
Aber ist es möglich, die Vorlagen zu formatieren? Zum Beispiel möchte ich Double in String-Vorlagen in Kotlin formatieren, um zumindest eine Anzahl von Ziffern nach einem Dezimaltrennzeichen festzulegen:
val pi = 3.14159265358979323
val s = "pi = $pi??" // How to make it "pi = 3.14"?
string-formatting
kotlin
MajesticRa
quelle
quelle
Antworten:
Leider gibt es noch keine integrierte Unterstützung für die Formatierung in Zeichenfolgenvorlagen. Um dieses Problem zu umgehen, können Sie Folgendes verwenden:
die
.format(n)
Funktion, als die Sie sich definieren müssenEs gibt hier eindeutig eine Funktionalität, die Kotlin im Moment fehlt. Wir werden sie beheben.
quelle
Als Problemumgehung gibt es eine Kotlin stdlib-Funktion , die auf nette Weise verwendet werden kann und vollständig mit dem String-Format von Java kompatibel ist (es ist nur ein Wrapper um Java
String.format()
).Siehe Kotlins Dokumentation
Ihr Code wäre:
quelle
Kotlins String-Klasse verfügt jetzt über eine Formatierungsfunktion , die intern die Java-
String.format
Methode verwendet:Verwendung
quelle
Es ist einfach, Verwendung:
quelle
Da
String.format
es sich nur um eine Erweiterungsfunktion handelt (siehe hier ), die intern aufgerufen wird, können Siejava.lang.String.format
Ihre eigene Erweiterungsfunktion mit Java DecimalFormat schreiben, wenn Sie mehr Flexibilität benötigen:quelle
Einige Beispiele:
quelle