Java 对于由字符串和双精度组成的单个打印输出,如何组合printf格式参数,以及以何种顺序组合?
下午好 这里有三行java代码,我想将它们组合成一个printf语句。其想法是最终有几列均匀分布的数据,用计算机科学符号表示,其中有5个有效数字。我似乎无法按正确的顺序组合这些论点。此外,当我试图通过添加额外的“%-#s”格式来设置多个列的格式时,我被告知没有包含足够的参数,或者出现了一些有趣的东西。我做错了什么Java 对于由字符串和双精度组成的单个打印输出,如何组合printf格式参数,以及以何种顺序组合?,java,printf,Java,Printf,下午好 这里有三行java代码,我想将它们组合成一个printf语句。其想法是最终有几列均匀分布的数据,用计算机科学符号表示,其中有5个有效数字。我似乎无法按正确的顺序组合这些论点。此外,当我试图通过添加额外的“%-#s”格式来设置多个列的格式时,我被告知没有包含足够的参数,或者出现了一些有趣的东西。我做错了什么 System.out.printf("%-3s", "a_"+k+" = "); System.out.printf("%6.3e\n", a_k[k]); System.out.pr
System.out.printf("%-3s", "a_"+k+" = ");
System.out.printf("%6.3e\n", a_k[k]);
System.out.printf("%6.3e\n", a1_k[k]);
我以各种顺序和组合尝试了以下方法,但均无效,无法理解javadocs如何正确实现这一点:
System.out.printf("%-3s%5.4e%-10s%5.4e\n", "a_"+k+" = ", a_k[k], a1_k[k]);
谢谢
当我试图通过添加额外的“%-#s”格式来格式化多个列时,有人告诉我没有包含足够的参数
它需要一个介于a_k[k]
和a1_k[k]
之间的字符串参数
以下是我认为您想要的四种格式
%-3s
->“a_u“+k+”=”
%5.4e
->a_k[k]
%-10s
->(空白)%5.4e
->a1_k[k]
“
”
System.out.printf("%-3s%5.4e%-10s%5.4e\n", "a_"+k+" = ", a_k[k], "", a1_k[k]);
或者,为了让眼睛更容易看
String akEq = "a_"+k+" = ";
float col1 = a_k[k];
float col2 = a1_k[k];
System.out.printf("%-3s%5.4e%-10s%5.4e\n", akEq, col1, "", col2);
并且,更进一步,将“a_%d=“
也放入格式中,而不是使用字符串串联
System.out.printf("a_%d = %5.4e%-10s%5.4e\n", k, col1, "", col2);
嗯,我看到了四个
%
,但是您只有三个值。您能告诉我们预期的格式应该是什么样的吗?我不知道您指的是什么文档,但简单地说。在您真正打印数据之前,不要使用花哨的格式。例如,您当前有“%s%e%s%e”
,所以(字符串、指数、字符串、指数)。第四个数据点在哪里?您有“a_uk+k+”=”,a_k[k],a1_k[k]
,这是三个值,如@cricket\u 007所述,您需要另一个字符串。如果您认为它是填充所必需的,那么您可以添加一个空字符串或一个带新行的字符串。“”或“\n”。类似于“a_“+k+”=”、a_k[k]、“\n”、a1_k[k]@Brion格式的东西看起来像:a1:column1e-10 column2e-14为什么不更进一步,替换“a_“+k+”=”的串联代码>通过更改格式字符串?可以。这不是问题的一部分,虽然很公平。除非你想把它合并到你的答案中,否则我将把它作为一个注释。我的意思是,%-3s
由于某种原因有填充,所以我想这是一个不使用它的原因。这做得相当好。然而,我注意到有一些错位,可能是由于那个空的“”。我可以将-10对齐/间距和5.4e应用于单个参数吗?不管怎样,谢谢你,这已经足够了。