使用前导零和逗号而不是小数点在 scala 中格式化字符串的最有效方法
Most efficient way to format a string in scala with leading Zero's and a comma instead of a decimal point
尝试创建一个简单的函数,通过该函数传入一个字符串值,即“1”,格式化程序应该 return 该值带有前导零和 5 个小数点,而不是点“.”。我正在尝试 return 用逗号 ','
这是我尝试过的方法,但它不起作用,因为 decimalFormatter 只能处理数字而不能处理字符串。最终目标是从“1”到“000000001,00000”——字符长度总共为 14。逗号后的5个0和逗号前的其余部分应补0以填充9位数字要求。
另一个例子是从“913”到“000000913,00000”
def numberFormatter (value: String): String =
{
import java.text.DecimalFormat
val decimalFormat = new DecimalFormat("%09d,00000")
val formattedValue = decimalFormat.format(value)
return formattedValue
}
如有任何帮助,我们将不胜感激。提前谢谢你。
def f(value:String) = new java.text.DecimalFormat("000000000.00000").format(value.toFloat).replace(".", ",")
scala> f(913f)
res5: 字符串 = 000000913,00000
// 编辑:首先使用 .toFloat(或 .toInt、.toLong 等)将字符串转换为数字。
用空格填充 String
很容易,但用零填充就没那么容易了。不过,自己动手并不难。
def numberFormatter(value :String) :String =
("0" * (9 - value.length)) + value + ",00000"
numberFormatter("1") //res0: String = 000000001,00000
numberFormatter("913") //res1: String = 000000913,00000
请注意,这不会截断输入 String
。因此,如果 value
长于 9 个字符,则结果将长于所需的 15 个字符。
尝试创建一个简单的函数,通过该函数传入一个字符串值,即“1”,格式化程序应该 return 该值带有前导零和 5 个小数点,而不是点“.”。我正在尝试 return 用逗号 ','
这是我尝试过的方法,但它不起作用,因为 decimalFormatter 只能处理数字而不能处理字符串。最终目标是从“1”到“000000001,00000”——字符长度总共为 14。逗号后的5个0和逗号前的其余部分应补0以填充9位数字要求。
另一个例子是从“913”到“000000913,00000”
def numberFormatter (value: String): String =
{
import java.text.DecimalFormat
val decimalFormat = new DecimalFormat("%09d,00000")
val formattedValue = decimalFormat.format(value)
return formattedValue
}
如有任何帮助,我们将不胜感激。提前谢谢你。
def f(value:String) = new java.text.DecimalFormat("000000000.00000").format(value.toFloat).replace(".", ",")
scala> f(913f) res5: 字符串 = 000000913,00000
// 编辑:首先使用 .toFloat(或 .toInt、.toLong 等)将字符串转换为数字。
用空格填充 String
很容易,但用零填充就没那么容易了。不过,自己动手并不难。
def numberFormatter(value :String) :String =
("0" * (9 - value.length)) + value + ",00000"
numberFormatter("1") //res0: String = 000000001,00000
numberFormatter("913") //res1: String = 000000913,00000
请注意,这不会截断输入 String
。因此,如果 value
长于 9 个字符,则结果将长于所需的 15 个字符。