“线程中的异常”;“主要”;java.util.MissingFormatArgumentException:格式说明符';10s';
毫无疑问,我在这里遗漏了一些非常明显的东西,但我想不出来。任何帮助都将不胜感激。错误来自这里:“线程中的异常”;“主要”;java.util.MissingFormatArgumentException:格式说明符';10s';,java,string,string.format,Java,String,String.format,毫无疑问,我在这里遗漏了一些非常明显的东西,但我想不出来。任何帮助都将不胜感激。错误来自这里: package B00166353_Grades; public class Student{ String name,banner; public Student(String name,String banner){ this.name=name; this.banner=banner; } public String toSt
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;
}
}
您必须向方法
format
添加一个参数,因为格式化字符串等待3个参数,而不是两个。格式字符串“%-20s%10.2s%10s”
包含三个参数:
%-20s
%10.2s
%10s
this.name
this.banner
%10s
)
因此,要么调整格式字符串,要么添加第三个参数
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
我认为您必须传递另一个参数,因为您只传递名称和横幅,但在字符串中您有3倍的%。。仅使用%20s%10.2s进行相同的尝试,您有:
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
由于您的字符串中有三个%s
,格式()
需要三个参数,但您只传递this.name
和this.banner
此外,由于您在学生
的内部,因此您不需要使用此
。您可以通过名称
和横幅
引用它们。错误在其他地方。您的主要方法在哪里?不,它就在toString()中。只传递了两个参数。。。