Подтвердить что ты не робот

Как форматировать строки в Scala?

Мне нужно напечатать форматированную строку, содержащую scala.Long. java.lang.String.format() несовместим с scala.Long(время компиляции) и RichLong (java.util.IllegalFormatConversionException)

Компилятор предупреждает об отказе Integer в следующем рабочем коде:

val number:Long = 3243
String.format("%d", new java.lang.Long(number))

Должен ли я изменить fomatter, тип данных или что-то еще?

4b9b3361

Ответ 1

Вы можете попробовать что-то вроде:

val number: Long = 3243
"%d".format(number)

Ответ 2

Метод формата в Scala существует непосредственно в экземплярах для String, поэтому вам не нужен/нужен метод статического класса. Вам также не нужно вручную вводить примитив long, пусть компилятор позаботится обо всем этом для вас!

String.format("%d", new java.lang.Integer(number))

поэтому лучше записывается как

"%d".format(number)

Ответ 3

@Bruno ответ - это то, что вы должны использовать в большинстве случаев.

Если вы хотите использовать метод Java для форматирования, используйте

String.format("%d",number.asInstanceOf[AnyRef])

который отлично подойдет для Long для Java.