gpt4 book ai didi

java - 如何使用模式将 DecimalFormat 的分组分隔符(千位)从逗号/点更改为引号?

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:32 28 4
gpt4 key购买 nike

我在这段代码中尝试用以下模式替换引号 (') 的千位分隔符 (.):###'###,##

import java.text.*;

public class NumberFormatTests
{
public static void main (String[] args)
{
double amount = 100100.543;
NumberFormat nf = new DecimalFormat("###'###.##");
System.out.println( "amount with formatting: " + nf.format(amount) );
}
}

但我收到此错误:

Exception in thread "main" java.lang.IllegalArgumentException: Malformed pattern "###'###.##" at java.text.DecimalFormat.applyPattern(DecimalFormat.java:3411) at java.text.DecimalFormat.(DecimalFormat.java:436) at NumberFormatTests.main(NumberFormatTests.java:8)

我知道它可以通过使用 DecimalFormatSymbols 以编程方式更改,如下所示:

import java.text.*;
import java.util.Locale;

public class NumberFormatTests
{
public static void main (String[] args)
{
double amount = 100100.543;

Locale currentLocale = new Locale("de", "DE");
DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale);
unusualSymbols.setGroupingSeparator('\'');

NumberFormat nf = new DecimalFormat("###,###.##", unusualSymbols);
System.out.println( "amount with formatting: " + nf.format(amount) );
}
}

但我需要找到一种在模式内执行此操作的方法,例如“###'###.##”。我已经尝试过“###''###.##”,但引号被添加为后缀。

是否有任何方法可以替换模式中已有的千位分隔符而不是通过编程方式?

最佳答案

可以使用 DecimalFormat 的子类来代替吗?您可以分析子类中的模式并从模式中提取不寻常的分组分隔符。在调用子类的 format 方法时,您可以将此分组分隔符与原始 DecimalFormat 一起使用,如您自己的示例代码中所示。这是子类的format方法返回的结果。

关于java - 如何使用模式将 DecimalFormat 的分组分隔符(千位)从逗号/点更改为引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52976330/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com