2012-11-06 21 views
2

我有一種情況需要在UI中顯示一些帶有空格的字符串。這是爲了更好的可讀性。可以在這裏使用Java字符串格式

例如,如果我的數據是「1234567890」,我想將其顯示爲「123 456 7890」。我想知道這是否可以使用Java的String格式方法來完成?

+0

你可以使用StringBuilder來實現它 - http://stackoverflow.com/questions/4469984/how-to-insert-space-after-every-character-of-an-existing-string-in-java – Zzz

回答

1

不,您必須實現自己的代碼。有關String API,請參見here

+0

我寫了一個實用方法,它將「返回plainString.substring(0,3)+」「+ plainString.substring(3,6)+」「+ plainString.substring(6,10);」它不漂亮,但我想 – midhunhk

+0

這個工作嗯,如果它的工作原理:)快樂編碼兄弟 –

0

它看起來像你想格式化電話號碼?您可以使用DecimalFormat,定義消息格式並使用原始字符串的子字符串創建String[]

1

我會用replaceAll來做。

String test = "1112223333"; 
System.out.println(test.replaceAll("(.{3})(.{3})(.{4})", "$1 $2 $3")); 

它使用正則表達式(.{3})(.{3})(.{4}).{x}任何匹配。 {x}是次數。我將它括在括號(.{3})中以捕獲匹配$ 1,$ 2和$ 3的字符串。

所以$ 1 = 「111」,$ 2 = 「222」 和$ 3 = 「3333」

+0

這是什麼$ 1,$ 2等? – midhunhk

+0

我更新了它。當你在正則表達式中使用圓括號時,它會捕獲匹配的字符串並存儲在$ 1,$ 2,$ 3 ...中作爲你在正則表達式中使用的'()'。整個字符串也存儲在$ 0中。 – Nate

0

是可以用的String.format() 首先做它可以拆分成陣列的字符串具有

一個[0] = 「123」

一個[1] = 「456」

一個[2] = 「7890」

然後使用以下

String.format("%1$3s %2$3s %3$3s",a);