我毫无疑问错过了一些非常明显的东西,但我无法弄明白。任何帮助,将不胜感激。错误来自这里:
package B00166353_Grades;
public class Student{
String name,banner;
public Student(String name,String banner){
this.name=name;
this.banner=banner;
}
public String toString(){
String productDetails=new String();
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
return productDetails;
}
}
答案 0 :(得分:29)
您的格式字符串"%-20s%10.2s%10s"
有三个参数:
%-20s
%10.2s
%10s
但只提供两个参数:
this.name
this.banner
错误消息指出缺少第三个参数(对于%10s
)。
因此,请调整格式字符串或添加第三个参数。
答案 1 :(得分:3)
你有:
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
由于%s
中有三String
,format()
预计有三个参数,但您只能传递this.name
和this.banner
。
此外,由于您位于Student
内,因此不需要使用this
。您可以通过name
和banner
简单地引用它们。
答案 2 :(得分:1)
你必须在方法format
中添加一个参数,因为你的格式化字符串等待3个参数,而不是两个。
答案 3 :(得分:0)
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
我认为你必须传递另一个参数,因为你只传递名称和横幅,但在字符串中你有3倍%..尝试相同只有%-20s%10.2s