Java 将变量放入printf语句中
我正在尝试制作一个方法,将多维字符串数组打印到一个表中,表中每个框中的最小空格数由一个整数参数决定。我的想法是简单地将变量名放在printf语句中数字值所在的位置,但这不起作用。有没有办法像这样将变量放入printf语句中 以下是我使用的多维数组示例:Java 将变量放入printf语句中,java,Java,我正在尝试制作一个方法,将多维字符串数组打印到一个表中,表中每个框中的最小空格数由一个整数参数决定。我的想法是简单地将变量名放在printf语句中数字值所在的位置,但这不起作用。有没有办法像这样将变量放入printf语句中 以下是我使用的多维数组示例: Static String[][] multi = { {"cow", "horseshoe", "goat"}, {"billybob", "frededmenton", "al"}, {"apple"}, }; 下面是方法调用: pri
Static String[][] multi = { {"cow", "horseshoe", "goat"},
{"billybob", "frededmenton", "al"},
{"apple"}, };
下面是方法调用:
printMultiStringTable(multi, "Example Header", 5);
以下是我目前使用的方法:
public static void PrintMultiStringTable(String[][] table, String header, int boxSize) {
System.out.printf("%s\n", header); //Prints a header at the top
for (int i = 0; i < table.length; i++) {
System.out.printf("%s", "|"); // Prints a vertical line at the start of each line
for(int j = 0; j < table[i].length; j++) {
System.out.printf("%boxSizes", table[i][j]); // shoehorned in boxSize variable
System.out.print("|");
}
System.out.println();
}
}
如果使用不同的变量minSize,则会出现此错误
Exception in thread "main" java.util.UnknownFormatConversionException:
Conversion = 'm'
at java.util.Formatter$FormatSpecifier.conversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at test.printMultiStringTable(test.java:26)
at test.main(test.java:15)
线程“main”java.util.UnknownFormatConversionException中的异常:
转换='m'
位于java.util.Formatter$FormatSpecifier.conversion(未知源)
位于java.util.Formatter$FormatSpecifier。(未知源)
位于java.util.Formatter.parse(未知源)
位于java.util.Formatter.format(未知源)
位于java.io.PrintStream.format(未知源)
位于java.io.PrintStream.printf(未知源)
在test.printMultiStringTable(test.java:26)
at test.main(test.java:15)
必须按照以下方式构建字符串:
System.out.printf("%" + boxSize + "s", table[i][j]);
将其视为首先创建一个格式化字符串,然后在printf中使用该字符串。您必须按照以下方式构建字符串:
System.out.printf("%" + boxSize + "s", table[i][j]);
将其视为首先创建一个格式化字符串,然后在printf中使用该字符串。请显示错误!它通常是“%5s”,至少有5个空格。所以我试着用变量来代替5你可以忽略我的评论我误解了这个问题。请显示错误!它通常是“%5s”,至少有5个空格。所以我试着用变量来代替5,你可以忽略我的评论,我误解了这个问题。