Java Printf 帮助格式化
Java Printf Help in formating
void catalog()
{
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5d\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
for(int i=1;i<53;i++)
System.out.print("-");
System.out.println();
for(int i=0;i<nob;i++)
System.out.printf("%-5d%-5d%-15s%-15s%-5d%-10s%-10d\n",
(i+1),bno[i],bname[i],author[i],availcopies[i],publisher[i],price[i]);
for(int i=1;i<53;i++)
System.out.print("-");
System.out.println();
}
我对在 java 中使用 printf 有这个疑问,所以这是我在使用 printf
时遇到的错误
java.util.MissingFormatArgumentException: Format specifier '%-15s'
at java.util.Formatter.format(Formatter.java:2519)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Library.catalog(LibrarySystem.java:162)
at LibrarySystem.main(LibrarySystem.java:218)
这个
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5d\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
将不起作用,因为最后一个是数字,而您将字符串 "PRICE".
传递给它
您应该为列名称使用不同的格式字符串。
列名称:"\n%-5s%-5s%-15s%-15s%-6s%-15s%-5s\n"
换行
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5d\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
到
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5s\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
因为最后一部分 %-5d\n" 将尝试获取 int 值,但您想打印一个字符串,即 "PRICE"
好好休息
简单的错误
void catalog()
{
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5d\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
for(int i=1;i<53;i++)
System.out.print("-");
System.out.println();
for(int i=0;i<nob;i++)
System.out.printf("%-5d%-5d%-15s%-15s%-5d%-10s%-10d\n",
(i+1),bno[i],bname[i],author[i],availcopies[i],publisher[i],price[i]);
for(int i=1;i<53;i++)
System.out.print("-");
System.out.println();
}
我对在 java 中使用 printf 有这个疑问,所以这是我在使用 printf
时遇到的错误java.util.MissingFormatArgumentException: Format specifier '%-15s'
at java.util.Formatter.format(Formatter.java:2519)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Library.catalog(LibrarySystem.java:162)
at LibrarySystem.main(LibrarySystem.java:218)
这个
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5d\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
将不起作用,因为最后一个是数字,而您将字符串 "PRICE".
传递给它您应该为列名称使用不同的格式字符串。
列名称:"\n%-5s%-5s%-15s%-15s%-6s%-15s%-5s\n"
换行
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5d\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
到
System.out.printf("\n%-5s%-5s%-15s%-15s%-6s%-15s%-5s\n",
"Sno.","B.No.","BOOK-NAME","AUTHOR-NAME","COPIES","PUBLISHER","PRICE");
因为最后一部分 %-5d\n" 将尝试获取 int 值,但您想打印一个字符串,即 "PRICE"
好好休息
简单的错误