2012-06-18 83 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是我最簡單的選擇。 –