Java 将数字格式化为模式,例如1234567890 -> 1234 - 56 78 90
Java format a number into a pattern, e.g. 1234567890 -> 1234 - 56 78 90
我只是想知道是否有可能(以及是否有简单的方法)为特定表达式设置双精度值的格式。例如:
我需要这个值 -> 1111111111
格式化为此 -> 1111 - 11 11 11
有人有想法吗?
谢谢
这取决于确切的输入格式,但这里有一些策略
使用 .substring(beginIndex, endIndex) 分割子串
System.out.println(input.substring(0, 4) + " - " + input.substring(4, 6)
+ " " + input.substring(6, 8) + " " + input.substring(8, 10));
正则表达式使用组来捕获给定的部分,然后用替换重新组装。
System.out.println(input.replaceAll("(....)(..)(..)(..)", " - "));
正则表达式学究会说这可以用这样的量词来写
(.{4})(.{2})(.{2})(.{2})
甚至用数字
(\d{4})(\d{2})(\d{2})(\d{2})
这取决于格式化输入数据的标准。您可以从检查 Splitter
class from Guava. Take a closer look at Splitter.fixedLength(int)
方法开始。也许,它将能够以优雅的方式完成所需的工作。
我只是想知道是否有可能(以及是否有简单的方法)为特定表达式设置双精度值的格式。例如:
我需要这个值 -> 1111111111
格式化为此 -> 1111 - 11 11 11
有人有想法吗?
谢谢
这取决于确切的输入格式,但这里有一些策略
使用 .substring(beginIndex, endIndex) 分割子串
System.out.println(input.substring(0, 4) + " - " + input.substring(4, 6)
+ " " + input.substring(6, 8) + " " + input.substring(8, 10));
正则表达式使用组来捕获给定的部分,然后用替换重新组装。
System.out.println(input.replaceAll("(....)(..)(..)(..)", " - "));
正则表达式学究会说这可以用这样的量词来写
(.{4})(.{2})(.{2})(.{2})
甚至用数字
(\d{4})(\d{2})(\d{2})(\d{2})
这取决于格式化输入数据的标准。您可以从检查 Splitter
class from Guava. Take a closer look at Splitter.fixedLength(int)
方法开始。也许,它将能够以优雅的方式完成所需的工作。