以下形式的一些现有代码用于格式数值:
String.format( pattern, value )
Run Code Online (Sandbox Code Playgroud)
请注意,我无法更改代码本身 - 我只能更改提供给代码的格式模式.
输出默认语言环境的货币符号的格式模式是什么?基本上,我想实现以下输出:
String.format( "...", 123 ) => $ 123
Run Code Online (Sandbox Code Playgroud)
Boh*_*ian 14
无需重新发明轮子.DecimalFormat附带货币支持:
String output = DecimalFormat.getCurrencyInstance().format(123.45);
Run Code Online (Sandbox Code Playgroud)
这还有完整的语言环境支持,可选择传入Locale:
String output = DecimalFormat.getCurrencyInstance(Locale.GERMANY).format( 123.45);
Run Code Online (Sandbox Code Playgroud)
这是一个测试:
System.out.println(DecimalFormat.getCurrencyInstance().format( 123.45) );
System.out.println(DecimalFormat.getCurrencyInstance(Locale.GERMANY).format( 123.45)) ;
Run Code Online (Sandbox Code Playgroud)
输出:
$123.45
123,45 €
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下方法:
public static void main(String[] args) {
System.out.println(String.format(" %d \u20AC", 123)); // %d for integer
System.out.println(String.format(" %.2f \u20AC", 123.10)); // %f for floats
}
Run Code Online (Sandbox Code Playgroud)
这打印:
123 €
123.10 €
Run Code Online (Sandbox Code Playgroud)