如何将指定的String值与Integer值相关联?

时间:2017-10-15 02:03:35

标签: java eclipse netbeans

我正在编写一个代码,允许用户决定他们想要什么类型的投资(年度,月度或季度),每种投资类型与特定整数相关:即年度= 1,每月= 12,以及季度= 4.然而,当我分配年度值时,我还需要将其与下面的投资等式中的int值相关联,并且完全不知道如何这样做。

.cpgz

2 个答案:

答案 0 :(得分:1)

  • 一旦确定了投资计划的类型,您需要检查quest变量是否与您期望的任何字符串匹配,即AnnualQuarterly或{{ 1}}。
  • 如果Monthly与任何选项匹配,则为quest变量指定正确的值,即1,4或12。
  • 如果答案与任何正确的选择都不匹配,您还可能需要考虑情况。

    choice

答案 1 :(得分:0)

我建议使用枚举来定义你想要的int。我将调用枚举计划和int术语:

public enum Plan {
    ANNUAL(1),
    QUARTERLY(4),
    MONTHLY(12);

    int term;

    Plan(int term) {
        this.term = term;
    }
};

你会在你的代码中使用它(这取代了int选择):

    Plan plan = Plan.valueOf(quest.toUpperCase());
    saving = principal * (1 + (rate / plan.term)) * Math.pow(plan.term, years);

我认为你需要不同版本的计算。如果你在枚举中添加了一个方法来启用枚举值,那么枚举方法会很容易地支持这一点。您可以计算出不同的计算实现,并在case语句中定义它们。

    double calculateSavings(int principal, double rate, int years) {
        switch (this) {
            case ANNUAL:
            case QUARTERLY:
            case MONTHLY:
            default:
                return principal * (1 + (rate / term)) * Math.pow(term, years);
        }
    }

如果你走这条路线,你会在你的代码中使用它:

    // saving = principal * (1 + (rate / plan.term)) * Math.pow(plan.term, years);
    saving = plan.calculateSavings(principal, rate,years);