如何连续向 DecimalFormat 传递两个文字字符?

How do I pass DecimalFormat two literal characters in a row?

我想将数字 1234.5678 的格式设置为 ($1,234.57)

所以我传入格式字符串 '(''$'#,##0.00')'

但这给了我 ('$1,234.57)

我猜这两个撇号正在被更改为文字 ' 和 $ 被吃掉后的 '。

那么如何将字符串 ($) 放入模式中?

基本上,($) 不会被 DecimalFormat 视为特殊字符,因为它们在表达式中没有意义。

例如,如果您使用 #,那么使用 '#'

就有意义

查看 Javadoc

' Used to quote special characters in a prefix or suffix, for example, "'#'#" formats 123 to "#123". To create a single quote itself, use two in a row: "# o''clock".

以下作品完美

DecimalFormat decimalFormat = new DecimalFormat("($#,##0.00)");
System.out.println(decimalFormat.format(1234.5678)); // (,234.57)