打印收据时,如何在项目的值和项目值之间的相同空间之间提供固定空间

时间:2014-01-22 09:38:33

标签: java android

我需要通过我的标签提供命令来打印我的值,格式应该是这样的 -

Name                     amount             quanity

sdfsadfhdasjfsdfds         34                2   

asd                        22                1

但问题是,如果值为name is small,那么format get dis-balanced。如何在项目之间提供修复空间以使格式保持不变。

我的代码是 -

builder.append(Name+"\n"    + "           " +amount     + "              "+ quantity + "\n");

2 个答案:

答案 0 :(得分:3)

您可以使用String.format()方法:

System.out.println(String.format("%s %10s %10s", "foo", "bar", "baz"));
System.out.println(String.format("%s %10s %10s", "foofoo", "barbar", "bazbaz")); 

打印:

foo        bar        baz
foofoo     barbar     bazbaz

%10s告诉String.format()为传递的字符串添加空格前的内容,直到达到10个字符的宽度。

有关格式字符串的更多详细信息,请查看documentation

答案 1 :(得分:1)

使用String.format()方法和%s你应该能够循环遍历所有名称项(假设它们应该比价格和数量更长)然后给int一个最长字符串的值。

String[] items = {"foo", "bar"} // item names
int spaces; // number of spaces

for(int i = 0; i < items.length; i++){

      if(spaces < items[i].length){

            spaces = items[i];

      }

}