Java 如何使用String.format()打印两个对象

Java 如何使用String.format()打印两个对象,java,methods,type-conversion,primitive-types,string.format,Java,Methods,Type Conversion,Primitive Types,String.format,我有点困惑。之前我发布了一个问题: 它得到的答案是使用String.format()和格式说明符(%s,%d,%f…) 虽然答案有点混乱,但我知道%f表示转换(?) 但是如何使用此方法打印出age和name。我的尝试: // DISPLAY Person name and age public String displayProfile() { return String.format(%fgetAge(), %fgetName()) } 执行上述方法的主要方法:

我有点困惑。之前我发布了一个问题:

它得到的答案是使用
String.format()和格式说明符(%s,%d,%f…)

虽然答案有点混乱,但我知道%f表示转换(?)

但是如何使用此方法打印出
age
name
。我的尝试:

// DISPLAY Person name and age

public String displayProfile() {
    return String.format(%fgetAge(), %fgetName())

        }
执行上述方法的主要方法:

 if (optionSelected == 2) {
           System.out.println(zac.displayProfile());
       }
我带着这个到处都是,任何帮助都将不胜感激

更新: 根据要求,我将发布与String.format()方法一起使用的get和set方法。因为尽管在更正String.format方法后我没有收到任何错误,但在我从String.format()返回getAge()和GetName()后,它不会打印出'name'和'age'。我有什么想法吗?

 // SET NAME 
public  void setName(String name) {
    this.name = name;
    }

// GET NAME 
public String getName() {
    return this.name;
}   


// SET AGE

public void setAge(int age) {
    this.age = age;
    }

// GET AGE

public int getAge() {
    return this.age;
}

格式说明符和函数需要分开,因此说明符在字符串中,函数需要在字符串后调用:

public String displayProfile() {
    return String.format("%d, %s", getAge(), getName());
    }

你需要做到:

public String displayProfile() {
  return String.format("%d %s", getAge(), getName())

} 
format方法接受多个参数,第一个参数始终是要格式化的字符串。所有其他变量将替换第一个字符串中的占位符。因此,这里基本上是告诉java打印一个字符串(
“%d%s”
),它有两个占位符(一个用于整数,一个用于字符串),由一个空格字符分隔。然后按照相同的顺序从左到右为占位符提供值


另外,我强烈建议您开始浏览或其他教程。

您可以使用
String.Format()
作为:

public String displayProfile() {
    return String.format("Age: %f, Name: %s", getAge(), getName());
}
其中,
%f
表示浮点类型,
%s
表示字符串类型。我认为你不需要浮点数来表示年龄。我宁愿使用int和
%d
来格式化


您可以进一步阅读格式化方面的内容。

注意:请确保确认
getAge()
getName()
函数返回的类型正确。我进行了更改,没有收到任何错误。但是,在执行main方法时,我不会打印“name”甚至“age”:if(optionSelected==2){System.out.println(zac.displayProfile());}。有什么建议吗?它不打印值,也不打印姓名和年龄?如果是后者,那么只需将
%d,%s“
更改为
“年龄:%f,姓名:%s”
Hey@jomahoney,谢谢您的回复。实际上,它既不打印值,也不打印单词“name”和“age”。虽然我想打印出年龄和姓名的值。有什么建议吗?我注意到你的和我的代码片段缺少
。没有看到所有的代码,我就看不到问题。嘿,伙计们!所以我做了修改,没有任何错误。但是,在执行main方法时,我不会打印“name”甚至“age”:if(optionSelected==2){System.out.println(zac.displayProfile());}