线程“main” java.util.MissingFormatArgumentException中的异常:格式说明符'10s'

2022-09-04 06:06:15

毫无疑问,我在这里错过了一些非常明显的东西,但我无法弄清楚。任何帮助将不胜感激。错误来自这里:

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;
    }
}

答案 1

格式字符串采用三个参数:"%-20s%10.2s%10s"

  1. %-20s
  2. %10.2s
  3. %10s

但只提供两个参数:

  1. this.name
  2. this.banner

错误消息指出缺少第三个参数 (for )。%10s

因此,请调整格式字符串或添加第三个参数。


答案 2

你有:

productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);

由于您的 中有三个,因此需要三个参数,但您只通过 和 。%sStringformat()this.namethis.banner

另外,由于您位于 内部,因此不需要使用 。您只需通过 和 引用它们即可。Studentthisnamebanner