2012-06-18 58 views
0

我想知道如果现在没有在java字符串格式类似于Java的DecimalFormat(“0#”)的Java字符串格式化

,我有以下一组数字,需要用破折号被掩盖,“ 00-0000-00“,我希望会有一个格式化程序,使我能够以类似的方式处理DecimalFormat(”00-0000-00“)。如果这种方法不存在,是否有人可以提供一个替代解决方案的例子。

我需要在保存到数据库时去掉破折号,并在从数据库中检索它们时将它们添加回去。

感谢

+0

你看过Java Formatter对象吗? http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html – trumpetlicks

+0

我能想到的唯一的事情就是模数'%'数字并插入格式化字符串。至于恢复它,'replaceAll(“ - ”,“”)'和'parseInt'是解决方案。 – nhahtdh

回答

6

你有没有看着String.format("%2d-%4d-%2d", int1, int2, int3)

实施例:

int n = 12345678; 
    String formatted = String.format("%2d-%4d-%2d", n/1000000, (n/100) % 10000, n % 100); 
    int orig = Integer.valueOf(formatted.replace("-", "")); 
    System.out.println(String.format("formatted=%s, orig=%d", formatted, orig)); 
    // formatted=12-3456-78, orig=12345678 
+0

+1正是我想要发布的内容,但你打败了我。 –

+0

@phatfingers谢谢,我想这可能是我唯一的选择,只是希望java有更简单的东西。 –

0

编写自定义方法及其相反。前者将在添加到你的数据库和后者调用你的数据库后调用。我相信应该不是太大的问题。

+0

是的,这正是我计划要做的,我只是希望一个简单的格式化程序,但它看起来像String.format是我最简单的选择。 –