如何动态制作printf语句?

时间:2017-12-03 17:14:35

标签: java mysql

printf语句看起来像System.out.printf("%-30s", "Scientific Name")。同时,我负责创建一个用于查询mysql数据库的基于文本的界面。

我获得的代码行是format.append("%-"+ name.length()+6);,其中format是StringBuilder,而name.length()是通过循环播放的列的长度因为我无法提前知道这个柱子有多大。我甚至不知道数据库,也不知道它包含的内容。

这里的问题是:字符串之间的逗号。这本身不是字符串的一部分,是吗?我的意思是,它的文字。它必须是,对吧?我只需要添加\" printf通常有引号,是吗?

...但是,当我之前将StringBuilder插入某个内容时,我从未需要类似的东西。

编辑:

基本上,我希望能够.printf(format , column name , column name , column name , ...),其中format是要打印出来的整个表格的格式(因此可以重复使用)。这可能吗?

2 个答案:

答案 0 :(得分:1)

看起来您应该将printf命令放入循环中。这将打印同一行上的所有列,但您可以构建每个列。如果要打印到文件,您可能需要在某处删除逗号,因此请密切关注打印出来的第一个字符并将其删除。

for(loop through column names){
    System.out.printf(",%-"+namelength()+"s", name);
}

答案 1 :(得分:0)

您可以使用.printf(format, column name, ...),因为逗号只是为printf函数提供所需参数的一部分,而不是您要打印的实际文本的一部分。