String.format создает ошибку - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в кодировании, и я не знаю, почему этот код не работает. Ps. он не показывает никаких ошибок в затмении, когда я печатал, но когда я его запускаю, он не работает. Это произошло только тогда, когда я использую 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 голосов
/ 05 июля 2018

Измените эту строку следующим образом:

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

Поскольку %s используется для строк, а %d используется для чисел.

0 голосов
/ 05 июля 2018

Взгляните на использование String.format() параметров здесь .

  • %d относится к байт, short, int, long, bigint .
  • %s до любой тип

Поскольку name - это String, вы должны использовать %s, а age - это int, вы можете использовать %s или %d. Итак, заявления

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

И

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

оба действительны.

0 голосов
/ 05 июля 2018

Вам нужно использовать %s для name и %d для age, у вас они неправильные.


В примечании вы также должны добавить @Override к вашему toString() методу.

...