Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '10s'

user2343208 picture user2343208 · Jul 26, 2013 · Viewed 55.4k times · Source

I'm no doubt missing something really obvious here but I can't figure it out. Any help would be appreciated. The mistake is coming from here:

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

Answer

Uwe Plonus picture Uwe Plonus · Jul 26, 2013

Your format string "%-20s%10.2s%10s" takes three parameters:

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

but only supply two parameters:

  1. this.name
  2. this.banner

The error message states that the third parameter (for %10s) is missing.

So either adjust your format string or add the third parameter.