2010-06-07 2 views
1

Я пытаюсь поместить строку в определенную начальную позицию в строке, независимо от того, где закончился предыдущий текст. Например:Java Formatter указывает начальную позицию для текста

Mandatory arguments to long options are mandatory for short options too. 
    -a, --all     do not ignore entries starting with . 
    -A, --almost-all   do not list implied . and .. 

Объяснение вариантов начинается с позиции 30 независимо от предшествующего текста. Как вы это делаете с помощью java.util.Formatter? Я тестировал как с шириной (%30s), так и с точностью (%.30), и ни один из них не дает желаемого результата.

+0

Если используется Apache Commons CLI, все это будет сделано для вас, в том числе при разборе аргументов опций и форматирования текста справки (http://commons.apache.org/cli/) – skaffman

+0

вопрос а не о разборе вариантов обязательно. – dplass

+0

@ dplass: Вот почему я не опубликовал его в качестве ответа. Но если аргументы анализа и форматирования являются конечной целью, нет смысла изобретать колесо. – skaffman

ответ

2

Вы можете использовать 'ширина' параметр, как это:

System.out.println(String.format("%-30s%s", " -a, --all", "do not ignore entries starting with .")); 
    System.out.println(String.format("%-30s%s", " -A, --almost-all", "do not list implied . and ..")); 

редактировать
Полный обзор, если вы заинтересованы. Он невелик, возможности форматирования довольно ограничены.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax

+0

спасибо! Левое оправдание предыдущего форматирования - это то, что я искал. Я прочитал javadocs, и ответ не был для меня. – purecharger

Смежные вопросы