Java int返回字符串

时间:2011-09-17 06:16:33

标签: java string int

我有一个int变量,我想创建一个String方法来返回int变量,我该怎么办呢?以下示例...并设置getAge()方法在年龄为18时返回“年轻”,在年龄为30时返回“年龄”。

private int age;

public String getAge() {

}

4 个答案:

答案 0 :(得分:5)

字面意思:

public String getAge() {
    return (30 == age)? "old":
           (18 == age)? "young":
                // because you said 18 is young, 30 is old, but didn't say
                // anything about all of the other ages!
                "I don't understand!";
}

你可以通过几种方式做到这一点。三元结构和“if”语句通常是最好的。

// this if/else reads "(if age >= 30 then return old) else return young"
public String getAge() {
    if (30 <= age)
       return "old";
    else
       return "young";
}

// this ternary statement reads "return (if age >= 30 then old) else young"
public String getAge() {
    return (30 <= age)? "old":"young";
}

// This would be my preference
public String getAge() {
    // add bounds checking!
    if (125 <= age)
       return "You are probably dead";
    else if (0 > age)
       return "Hi doc brown! What's it like to travel through time?";
    else if (30 <= age)
       return "old";
    return "young";
}

答案 1 :(得分:0)

getAge()不是一个好的命名方法。

让其他开发者/用户感到困惑的是, getAge()会返回一个int号。

我认为您应该将您的方法命名为 getAgeClass()。

请注意,公共方法将暴露给其他类,非常重要的是,公共方法的命名应该是有意义的,而不是混淆。当您编写OO

时,这是一个很好的做法

答案 2 :(得分:0)

我不推荐这个只有2个年龄的小案例,但如果你想扩展...

您当然也可以添加显示字符串。

public enum AgeMonikers
{
    AweCute(2),
    DontTouchThat(4),
    Child(10),
    Preteen(13),
    Trouble(20),
    MoveOut(24),
    ThinkYouKnowEverythingDev(25),
    ActuallyKnowSomeDev(30),
    OldFart(100),
    WishIWasDead(Integer.MAX_VALUE);

    private int maxAge;

    private AgeMonikers(int ageLimit)
    {
        maxAge = ageLimit;
    }

    static public AgeMonikers getMoniker(int age)
    {
        if (age < 0) 
            return null;

        for(int i=values().length-1; i>0; i--)
        {
            AgeMonikers val = values()[i];

            if (age >= val.maxAge)
                return values()[i+1];
        }
        return AweCute;  // age < 2 - I know it will include negatives.
    }
}


public String getAge() 
{
    return AgeMoniker.getMoniker(age).toString();
}

答案 3 :(得分:-1)

更好地使用switch语句,因为条件表达式没有改变。 所以这样做:

switch (age) {
    case 18:
        return "young";
    case 30:
        return "old";
    default:
        return "??";
    }