我是Java中的菜鸟,我遇到了下面的代码,无法弄清楚它的功能。 maxw []是int类型的数组。 row []是String类型的数组。
String format = " | %-"+maxW[i]+"s";
System.out.printf(format,row[i]);
我的问题是: 对于此语句:System.out.printf(format,row [i]);只有'|'在行[i]的值被打印之后,为什么'% - (maxW [i]的值)和's'没有被打印出来?
答案 0 :(得分:5)
Java格式说明符描述为here。
此代码动态创建一个格式说明符,它将左对齐一个字符串(row [i]),其最小宽度由maxW [i]指定。
格式说明符遵循下面第一行的模式。在下面我已经对齐上面的代码,显示它适合模式的位置。
%[argument_index$][flags] [width] [.precision]conversion
" | % - "+maxW[i] +"s";
答案 1 :(得分:0)
格式方法假定String描述了文档中所述的格式。它处理%x或类似的方式,用第一个,第二个等参数替换它。
如果你想了解更多,我建议你阅读这种方法的Javadoc。