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());}