string - 带格式的 Scala 字符串插值,如何更改语言环境?

标签 string scala string-interpolation

在瑞典进行格式字符串插值时,在使用十进制数字创建字符串时,我得到的是逗号而不是点:

scala> val a = 5.010
a: Double = 5.01

scala> val a = 5.0101
a: Double = 5.0101

scala> f"$a%.2f"
res0: String = 5,01

我的问题是,如何设置格式才能得到结果 5.01 ?我希望能够仅为该字符串设置语言环境,即我不会更改整个环境的语言环境。

干杯,

约翰

最佳答案

使用相同的 Java library number formatting support 无障碍
来自 StringOps enriched String class ,您可以为该输出指定另一个语言环境:

"%.2f".formatLocal(java.util.Locale.US, a)

(如“How to convert an Int to a String of a given length with leading zeros to align?”中所述)

Scala 的方法是使用 string f interpolator (Scala 2.10+),就像在 OP 的问题中一样,但它使用“当前语言环境”,没有提供一种简单的方法来将该语言环境设置为不同的语言环境,仅用于一次调用。

关于string - 带格式的 Scala 字符串插值,如何更改语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780052/

相关文章:

python - 替换字符串列表中的子字符串

c - 是否需要初始化 char 数组以获得准确的长度?

c++ - 这种反转字符串的方式安全吗?

scala - 在 Scala 反射中,为什么构造函数参数隐藏 getter?

scala - 带 3 个参数的 zip 函数

string - 哪个方案的性能更好 : StringBuilder or String Interpolation-Concatenation

ruby - 运行带有多个参数的 shell 命令

java - 将编码为字节数组的字符串转换为字符数组,而不使用 java.lang.String

string - 如何在scala中使用插值将双引号插入到字符串中

scala - 在 Scala 中实现 Scala 风格的字符串插值