需要一些String.format的帮助

时间:2009-10-19 12:24:32

标签: java string formatting

我正在尝试查找有关在java中格式化字符串的完整教程。

我需要创建收据,如下所示:

       HEADER IN MIDDLE
''''''''''''''''''''''''''''''
Item1                   Price
Item2 x 5               Price
Item3 that has a very
long name....           Price
''''''''''''''''''''''''''''''
Netprice:                 xxx
Grossprice:               xxx
VAT:                      xxx
Shipping cost:            xxx
Total:                    xxx
''''''''''''''''''''''''''''''
      FOOTER IN MIDDLE

7 个答案:

答案 0 :(得分:6)

传递给string.format的格式如下:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax

从页面:

  

一般的格式说明符,   字符和数字类型有   语法如下:

   %[argument_index$][flags][width][.precision]conversion
     

可选的argument_index是一个   十进制整数表示   论证的位置   参数列表。第一个论点是   由“1 $”引用,第二个由   “2 $”等。

     

可选标志是一组   修改输出的字符   格式。有效标志集取决于   关于转换。

     

可选宽度为非负数   十进制整数表示最小值   要写入的字符数   输出。

     

可选的精度是a   通常是非负十进制整数   用来限制数量   字符。具体行为   取决于转换。

     

所需的转化是一个字符   说明参数应该如何   格式化。这套有效   给定参数的转换   取决于参数的数据类型。

答案 1 :(得分:0)

对于这种要求,

格式化字符串是一些复杂的。 所以最好使用你给出的格式来获取一些报告工具。 这将是更好的方法。

水晶报告或其他易于实施的报告。

答案 2 :(得分:0)

尝试使用格式化字符串来执行此操作会花费您很多时间和精力。我会建议像Stringtemplate这样的模板引擎或类似的东西。

通过这样做,您可以将演示文稿与数据分开,从长远来看,这将是一件非常好的事情。

答案 3 :(得分:0)

查看 java.text 包中的这些类是否有帮助..

Format

MessageFormat

答案 4 :(得分:0)

是的,如solairaja所说,如果你打算创建报告或收据,你可以像Crystal报告那样使用报告工具

Crystal Report Crystal Report Tutorial

或者如果您打算使用StringFormatting本身,那么“StringBuffer”将是您可以使用它的最佳选择。

答案 5 :(得分:0)

您应该查看用于此类多行报告格式的Java模板工具。

Velocity简单且容忍错误。 Freemarker非常强大,但更不容忍。我最初可能 看看Velocity,如果你需要做更多这类工作,请进一步了解Freemarker。

答案 6 :(得分:0)

看起来社区的一般建议是使用报告工具解决问题的更好方法。

这里有一个开源Java图表和报告工具的详细列表: http://java-source.net/open-source/charting-and-reporting

在我看来,最着名的是Jasper Reports。有关它的大量资源可在网上找到