如何在 android 中制作类似 000"+"000 的数字格式

How can i make a Number Format Like 000"+"000 in android

我想制作类似 000"+"000 的数字格式。规则将是 3 位数字“+”3 位数字。下面我给大家举几个例子。

我已经尝试了一些代码,然后在下面展示它们。我想我必须使用 NumberFormat class。我的代码如下。顺便说一句,我的号码最多有 6 位数字,如果号码的位数较少,则缺少的数字(将在左侧)必须为 0。

我试过了

NumberFormat numberFormat = new DecimalFormat("000'+'000");

但它给出的错误是

模式“000'+'000”中未加引号的特殊字符“0”

但是我做的时候就成功了

NumberFormat numberFormat = new DecimalFormat("'+'000");

NumberFormat numberFormat = new DecimalFormat("000'+'");

所以简单地说,我可以制作数字加号或加号,但我不能制作数字(3 位)-加号(3 位)

我希望得到这些输入的输出:

input: 4032

output: 004+032

input : 5

output: 000+005

input: 123450

output: 123+450

input: 10450

output: 010+450

您想要的不是十进制语法。因此,您不能使用 DecimalFormat,因为它可以处理各种本地化数字,但不能处理像您这样的任意数字。但是,您可能想要实现自己的 java.text.Format。

要不就用这种方法,以后再转成你想要的格式呢

generateNumbers(String val) {
    int len = val.length();
    String finalValue;
    StringBuffer sb = new StringBuffer();
    if (len < 6) {
        for (int i = 6; i > len; i--) {
            sb.append("0");
        }
        finalValue = sb.append(val).toString();
    } else {
        finalValue = val;
    }
    System.out.println(finalValue.substring(0, 3) + "+" + finalValue.substring(3));
}


为了测试你可以调用这个

generateNumbers("4032");
generateNumbers("5");
generateNumbers("123450");
generateNumbers("10450");


输出是

004+032
000+005
123+450
010+450

如果有用请告诉我。

有技巧:将分组分隔符改为+:

DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.getDefault());
symbols.setGroupingSeparator('+');
NumberFormat nf = new DecimalFormat("000,000", symbols);

int x = 3250;
System.out.println(nf.format(x));

结果:

003+250

或者使用这样的方法:

public static String specialFormat(int number) {
    NumberFormat nf = new DecimalFormat("000");
    return nf.format(number / 1000) + "+" + nf.format(number % 1000);
}

它分别格式化前 3 位和后 3 位,并在中间用 + 连接。
使用它:

int x = 5023;
System.out.println(specialFormat(x));

结果:

005+023