2011-12-13 62 views
0

我正在使用Formatter將Java代碼輸出到文件。我想在每行的開頭添加一個特定數量的空格。我的問題是我無法找到一個「乾淨利落」的方法。標準選項似乎只允許添加最少數量的空間,但不能添加特定數量的空間。使用java.util.Formatter添加字符串開頭的空格的確切數目

作爲解決辦法,我目前正在執行以下操作: out.format("%7s%s", "", "My text");但我想只用兩個參數來完成,如out.format("%7s", "My text");

有誰知道是否有辦法使用標準的Formatter選項來做到這一點?

回答

0

我不太確定你想要的位置:

out.format("xxx%10sxxx", "My text"); 
// prints: xxx My textxxx 

雖然:

out.format("xxx%-10sxxx", "My text"); 
// prints: xxxMy text xxx 

據我所知,目前還沒有辦法做舊的C風格的格式來在參數「%* s」中指定大小,因爲那樣你可以通過(str.length() + 7)

恐怕你的方式似乎是最「整潔」的。如果你能解釋爲什麼你不喜歡它,也許我們可以找到一個更好的解決方法。

+0

通過整齊我的意思是,不必增加只存在欺騙Formattor到印刷的空間我要的號碼一個額外的參數。它看起來很混亂,會混淆不瞭解這個問題的人。也許一個返回一串空格的方法對於這種情況會更好。 – toc777

0

您可以在文本中加入文本。 另一種方式來reapet您可以使用此代碼的任何字符串: -

String str = "abc"; 
String repeated = StringUtils.repeat(str, 3); 

這裏StringUtils的是org.apache.commons.lang3.StringUtils類。

0

使用Commons Lang

String line = "Hello World!"; 
int numberOfSpaces = 2; 
String lineWithSpacePadding = StringUtils.leftPad(line, line.length() + numberOfSpaces);