2011-09-29 2 views
2

Скажите, что у вас есть табличные данные, где длина данных может меняться, есть ли условие с классом Formatter для автоматической настройки прокладки?Java Formatter class, есть ли простой способ автоматического заполнения столбцов пробелами?

Таким образом, вместо этого (примечание колонка А):

columnA columnB  
1   34.34   
10   34.34 
100   34.34   
1000   34.34 

Вы получаете эту (примечание столбец B):

columnA columnB  
1   34.34   
10   34.34 
100   34.34   
1000   34.34 

До сих пор, я попытался это, который только просто включает в себя пробелы между% 5s% 5s, но они являются статическими и не корректируются для получения результатов, которые я хочу. У меня создалось впечатление, что 5 в% 5 будут автоматически заполняться 5 пробелов

Formatter formatter = new Formatter(); 
formatter.format("%5s  %5s", columnAdata, columnBdata); 
+0

Да, эта функция присутствует. Немного экспериментируйте, и вы сможете легко решить эту проблему. –

+0

Кстати, что ты пробовал? –

ответ

7

Это определенно возможно. Способ, которым я знаю, - настроить минимальную ширину для данных в первом столбце. Для этого вы хотите использовать атрибут шириной в сочетании с левым оправданием (оба задокументированы в the Javadoc). Вот начало для вас:

System.out.printf("%-10d %d%n", 1, 100); 
System.out.printf("%-10d %d%n", 10, 100); 
System.out.printf("%-10d %d%n", 100, 100); 

Печатается:

1   100 
10   100 
100  100 

%-10d %d%n Формат можно объяснить следующим образом:

%-10d: first field 

    %: start field 
    -: left-justify 
    10: output a minimum of 10 characters 
    d: format as a decimal integer 

%d: second field, using defaults for decimal integer 
%n: newline 
+0

Удивительный, спасибо! – Hoofamon