Question

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;
    }
}
Was it helpful?

Solution

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.

OTHER TIPS

You have:

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

Since you have three %s in your String, format() expects three paramteres, but you only pass this.name and this.banner.

Also, since you're inside of Student, you do not need to use this. You can simply reference them by name and banner.

You have to add an argument to the method format, because your formatted string awaits for 3 arguments, not two.

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

I think that you must pass another argument, because you pass only name and banner but in the string you have 3 times %.. try the same with only %-20s%10.2s

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top