Il ne fait aucun doute que je manque quelque chose de vraiment évident ici mais je n'arrive pas à le comprendre. Toute aide serait appréciée. L'erreur vient d'ici:
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;
}
}
Votre chaîne de format "%-20s%10.2s%10s"
prend trois paramètres:
%-20s
%10.2s
%10s
mais ne fournissent que deux paramètres:
this.name
this.banner
Le message d'erreur indique que le troisième paramètre (pour %10s
) est manquant.
Donc, ajustez votre chaîne de format ou ajoutez le troisième paramètre.
Tu as:
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
Puisque vous avez trois %s
dans votre String
, format()
s'attend à trois paramètres, mais vous ne transmettez que this.name
et this.banner
.
De plus, puisque vous êtes à l’intérieur de Student
, vous devez pas utiliser this
. Vous pouvez simplement les référencer par name
et banner
.
Vous devez ajouter un argument à la méthode format
, car votre chaîne formatée attend 3 arguments et non deux.
productDetails+=String.format("%-20s%10.2s%10s",this.name,this.banner);
Je pense que vous devez passer un autre argument, car vous ne passez que le nom et la bannière mais dans la chaîne vous avez 3 fois% .. essayez la même chose avec% -20s% 10.2s