Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.util.MissingFormatArgumentException:格式说明符';10s';_Java_String_String.format - Fatal编程技术网

“线程中的异常”;“主要”;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()中。只传递了两个参数。。。