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

时间:2014-02-25 10:47:11

标签: java methods type-conversion primitive-types string.format

我有点困惑。之前我发布了一个问题:Conventional Programming: How do you return two Types of primitive ('int and 'string') from "get" method?

得到的答案是使用String.format() with format specifiers (%s, %d, %f...)

虽然答案有点令人困惑但我明白%f意味着转换(?)

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

// 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;
}

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

你需要这样做:

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

} 

format方法有几个参数,第一个始终是要格式化的字符串。所有其他都是替换第一个字符串中的占位符的变量。所以你在这里做的是告诉java打印一个字符串("%d %s"),它有两个占位符(一个用于整数,一个用于字符串),用一个空格字符分隔。然后,您以相同的顺序从左到右提供占位符的值。

此外,我强烈建议您开始浏览http://docs.oracle.com/javase/tutorial/或其他一些教程。

答案 2 :(得分:0)

您可以将String.Format()用作:

public String displayProfile() {
    return String.format("Age: %f, Name: %s", getAge(), getName());
}

其中%f代表浮点类型,%s代表 String 类型。我认为你不需要浮点代表Age。我宁愿使用 int 并使用%d来格式化。

您可以进一步了解格式here