Java将数字格式化为模式,例如1234567890 - > 1234 - 56 78 90

时间:2015-02-10 12:54:08

标签: java double expression

我只是想知道是否有可能(如果有一种简单的方法)格式化特定表达式的double值。例如:

我需要这个价值 - > 1111111111

格式化为此 - > 1111 - 11 11 11

任何人都有想法?

由于

2 个答案:

答案 0 :(得分:4)

这取决于确切的输入格式,但这里有一些策略

使用.substring(beginIndex,endIndex)

进行子串切割
System.out.println(input.substring(0, 4) + " - " + input.substring(4, 6)
        + " " + input.substring(6, 8) + " " + input.substring(8, 10));

正则表达式使用组捕获给定的部分,然后使用replace重新组装。

System.out.println(input.replaceAll("(....)(..)(..)(..)", "$1 - $2 $3 $4"));

正则表达式会说这可以使用像这样的量词来编写

(.{4})(.{2})(.{2})(.{2})

甚至是数字

(\\d{4})(\\d{2})(\\d{2})(\\d{2})

答案 1 :(得分:1)

这取决于格式化输入数据的标准。您可以从Splitter检查Guava课程开始。仔细看看Splitter.fixedLength(int)方法。也许,它能够以优雅的方式完成理想的工作。