Ich fragte mich, was der beste Weg wäre, eine Zeichenfolge in Scala zu formatieren. Ich implementiere die toString-Methode für eine Klasse neu und es ist eine ziemlich lange und komplexe Zeichenfolge. Ich dachte über die Verwendung von String.format nach, aber es scheint Probleme mit Scala zu haben. Gibt es dafür eine native Scala-Funktion?Was ist der beste Weg, um eine Zeichenkette in Scala zu formatieren?
Antwort
Ich habe es einfach falsch verwendet. Korrekte Verwendung ist .format (parem1, parem2).
Die Sache, auf die man mit String#format
achten sollte, ist die Tatsache, dass sie tatsächlich mit Reflektion implementiert wird (ab v2.7.4). Es delegiert an die Java-API, aber die Reflektion fügt einem vergleichsweise geringen Methodenaufruf einen ziemlich hohen Aufwand hinzu. Möglicherweise möchten Sie die String-Verkettung im Java-Stil nur aus Performance-Gründen in Betracht ziehen. Wie ich es verstehe, sollte Scala Version 2.8.0 dieses Problem lösen.
Das einst komisch überkomplizierte Format ist jetzt nur noch: def Format (args: Beliebig *): String = java.lang.String.format (selbst, args.toArray [Beliebige] .asInstanceOf [Array [AnyRef]]: _ *) – extempore
Mit Blick auf die Quelle von 2.9.1 ist dies behoben. 'StringLike.format (args: * Any)' umschließt nun einfach 'java.lang.String.format'. – mtsz
Wie wäre es mit guten alten java.text.MessageFormat
?
- 1. VBScript: Was ist der einfachste Weg, um eine Zeichenkette zu formatieren?
- 2. Was ist der beste Weg, um eine XML-Zeichenfolge in Ruby zu formatieren?
- 3. Der beste Weg, um sicher auf eine Zeichenkette zu drucken?
- 4. Was ist der beste Weg, um eine Eigenschaft zu deklarieren?
- 5. Was ist der beste Weg, Quellcode in IMs zu formatieren, um Einrückungen zu erhalten?
- 6. Was ist der beste Weg, um eine Tabelle zu deduplizieren?
- 7. Was ist der beste Weg, um eine IllegalArgumentException zu fangen
- 8. Was ist der beste Weg, um eine Sitemap zu erstellen?
- 9. Was ist der beste Weg, um eine Animation zu fahren?
- 10. Was ist der beste Weg, um eine Liste zu kopieren?
- 11. Was ist der beste Weg, um eine Enumeration zu erhöhen?
- 12. Was ist der beste Weg, um ein Scala-Array von Zeichenketten in eine Karte zu konvertieren?
- 13. Was ist der beste Weg, um Ausnahmen zu einer Zeichenkette zu protokollieren
- 14. Was ist der beste Weg, um Zeichenkette Daten zu teilen, die in PHP
- 15. Was ist der beste Weg, um in C++ zu casten?
- 16. Der beste Weg, um Daten zu formatieren für
- 17. Was ist der beste Weg, über ein Array in scala
- 18. Was ist der beste Weg, um dieses Stück von SQL neu zu formatieren die Tausende
- 19. Was ist der idiomatische scala Weg zu finden, wenn eine gegebene Zeichenkette eine gegebene Teilkette enthält?
- 20. Was ist der beste Weg, um optionale Typen von Typ Safe in Scala zu definieren?
- 21. Was ist der beste Weg, um vorberechnete Daten zu implementieren?
- 22. Was ist der beste Weg, um ein Verzeichnis zu leeren?
- 23. Was ist der beste Weg, um mit OSGI zu beginnen?
- 24. Was ist der beste Weg, um einen InputStream zu überwachen?
- 25. Was ist der beste Weg, um ein dynamisch wachsendes Array in Scala zu erstellen?
- 26. Was ist der beste Weg, um mehrere Suchoptionen zu behandeln?
- 27. Was ist der beste Weg, um mehrere Aktionen zu behandeln?
- 28. Was ist der beste Weg, um einen Datenrahmen zu umgehen?
- 29. Was ist der beste Weg, um eine boolesche Variable umzuschalten?
- 30. Was ist der beste Weg, um innere Produkte zu bilden?
Es gibt eine Sache in 'RichString', die Sie hier etwas nettere Sachen machen können; während nur die Java-API tun Sie: String.format ("% s% d Hasen hat", name, bunnyCount) Sie folgendes tun: .format (Name "% s% d Hasen hat" , bunnyCount) Oder sogar als Operator verwenden: "% s hat% d hasen" format (name, bunnyCount) – Calum
So benutze ich es. – Rayne