2010-06-07 38 views
1

我试图将一个字符串定位在某一行的某个起始位置,而不管前一个文本的结束位置。例如:Java格式化程序指定文本的起始位置

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的百科全书CLI,所有这一切都将替您完成了,包括选项参数分析和帮助的文本格式(http://commons.apache.org/cli/) – skaffman 2010-06-07 21:49:34

+0

问题不是必须解析选项。 – dplass 2010-06-07 22:00:14

+0

@dplass:这就是为什么我没有发布它作为答案。但如果解析和格式化参数是最终目标,那么重新发明轮子就没有意义了。 – skaffman 2010-06-07 22:21:38

回答

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 2010-06-07 22:49:31

相关问题