在Java

时间:2018-05-08 12:32:22

标签: java printf

我有一个名为CustomerTypeApp的主类。它有一个类变量private static float itemPrice = 0.0f。在main方法中有以下代码:

String promptType = ("  To determine a discount for " + nf.format((float) itemPrice) + ", type in the... ...Select =>  ");
char customer = Validation.getChar(promptType);

我还有一个名为Validation的类,其方法是getChar。代码如下:

public static char getChar(String prompt){
    String input;
    char choice;
    System.out.printf("  " + prompt);
    input = sc.nextLine();
    choice = input.charAt(0);
    return choice;
}

在CustomerTypeApp类中,nf.format显然是指NumberFormat。但是,教授说我们不能使用NumberFormat而是必须使用printf。 getChar方法确实使用了printf语句。但是,我无法传递printf(变量?)的值。这就是我的意思: 我按如下方式编辑了CustomerTypeApp的代码:

String promptType = ("  To determine a discount for $%.2s, type in the... ...Select => ");

问题是我必须传递$%。2s所在的itemPrice。我尝试将它添加到promptType的末尾,如下所示:

("  To determine...$%.2s...Select => ", itemPrice);

然而,我收到错误,说明“)”期望和“;”预期。我也尝试在getChar方法中添加它,如下所示:

System.out.printf("  " + prompt, itemPrice);

然而,为此,我收到一条错误,指出无法找到符号。

谁能告诉我我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:5)

使用 String.format("To determine...%f.2s...Select => ", itemPrice)