Java 格式带空格的数字

标签 java

我有一个这样的号码:

1234567890123

并且想要像这样格式化它

12 34567 89012 3

或者也许像这样

1-234 567-890 1 23

我怎样才能实现这一目标?我试过这个

DecimalFormat decimalFormat = new DecimalFormat("00 00000 00000 0");
System.out.println(decimalFormat.format(1234567890123L));

但这行不通。

我需要一种方法来指定可以包含任何分隔符的模式。

最佳答案

import java.text.ParseException;
import javax.swing.text.MaskFormatter;
import org.junit.jupiter.api.Test;

public class FormatTest {

    @Test
    void testNumberFormat() throws ParseException {

        final String format = "#-### ###-### # ##";
        final String number = "1234567890123";

        MaskFormatter maskFormatter = new MaskFormatter(format);
        maskFormatter.setValueContainsLiteralCharacters(false);

        System.out.println(maskFormatter.valueToString(number));
    }
}

关于Java 格式带空格的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69676331/

相关文章:

用于手动序列化的 Java 接口(interface)

java - InventoryItem.java 使用未经检查或不安全的操作

java - AuthenticationProvider 和 AuthenticationEntryPoint 之间的区别

java - 有没有一种方法可以每次都以相同的方式处理异常而不跳过太多代码

java - 在 java 中将 html 转换为 doc

java - 无法访问同一类中的对象数组?

java - 如何将数据从第 5 个 Activity 发送到第一个 Activity ?

java - 在 ArrayList 中查找所需数量的最小 double

java - 错误: reached end of file while parsing

java - 在cassandra中存储小文件