String.format正在创建错误

时间:2018-07-05 07:44:05

标签: java string string-formatting

我是编码方面的初学者,但我不知道为什么此代码无法正常工作。附言当我键入时,它没有在eclipse中显示任何错误,但是当我运行它时,它没有运行。这仅在我使用String.format()时发生,当我使用StringBuilder返回toString方法时,代码运行正常。

class Dog {

    private int age;
    private String name;

    public Dog(String name, int age) {
        this.age = age;
        this.name = name;

    }

    public String toString() {
        return String.format("my name is %s and im %d years old", name, age);
    }
}

class App {

    public static void main(String[] args) {

        Dog dog1 = new Dog("bob", 6);
        System.out.println(dog1);
    }
}

3 个答案:

答案 0 :(得分:3)

对于%s,您需要使用name;对于%d,您需要使用age:错误的处理方法。


另外,您还应该在@Override方法中添加toString()

答案 1 :(得分:2)

看看String.format()参数here的用法。

  • %d适用于 byte,short,int,long,bigint
  • %s更改为任何类型

由于nameString,因此您必须使用%s,因为ageint,因此您可以同时使用%s或{ {1}}。因此,声明

%d

AND

return String.format("my name is %s and im %d years old", name, age);

都是有效的。

答案 2 :(得分:0)

将该行更改为以下内容:

return String.format("my name is %s and im %d years old", name, age);

由于%s用于字符串,%d用于数字。