使用printf()时遇到问题

时间:2014-07-06 02:27:09

标签: java printf

到目前为止,这是我的代码。

import java.util.Scanner;
public class two {

    public static void main(String[] args) {
        System.out.println("--- Stage 1 Taxi Fare Calculator ---");

        Scanner user_input = new Scanner( System.in );

        System.out.print("Enter in pick up time:  ");
        System.out.flush();
        String startTime = user_input.next();

        System.out.print("Enter in pickup point:  ");
        System.out.flush();
        String pickUp = user_input.next();

        System.out.print("Enter in drop off point:  ");
        System.out.flush();
        String dropOff = user_input.next();

        System.out.print("Enter in trip distance in km:  ");
        System.out.flush();
        Double tripDist = user_input.nextDouble();
        user_input.nextLine();

        Double fareRate = 1.60;
        Double baseFare = tripDist * fareRate;
        Double totalFare = baseFare;

        String m1 = "The pickup point was: %15s%n";
        String m2 = "The drop off point was: %13s%n";
        String m3 = "The pickup time was: %11s%n";
        String m4 = "Estimated distance (km): %12f%n";
        String m5 = "Fare Charged: $%11.2f%n";
        String m6 = "Base fare: $%15.2f%n";
        String m7 = "Total fare: $%14.2f%n";
        String m8 = "Plus surcharges: $%14.2f%n";
        System.out.println(" --- Taxi fare details --- ");
        System.out.printf(m1, pickUp); 
        System.out.printf(m2, dropOff);
        System.out.printf(m3, startTime);
        System.out.printf(m4, tripDist);
        System.out.printf(m5, fareRate);
        System.out.printf(m6, baseFare);
        System.out.printf(m7, totalFare);
    }


}

EDIT2(最终):我已经为我的代码添加了更多内容,现在我们已经看到了上面所看到的内容,现在我需要做的就是增加附加费,所以当它在一定时间内支付一定的费用并且还需要额外收费时,无论如何不在那里寻求帮助只是让你们知道你已经帮了很多,我感谢你们。顺便说一下,如果我不应该像我一样编辑这个,我会道歉。

1 个答案:

答案 0 :(得分:1)

如果您在阅读的同一行上声明了变量,那么您的代码可能会更短;如果您没有flush(),那么您应该println(),即

System.out.print("Enter in pick up time:  ");
System.out.flush();
String startTime = user_input.next();

System.out.print("Enter in pickup point:  ");
System.out.flush();
String pickUp = user_input.next();

System.out.print("Enter in drop off point:  ");
System.out.flush();
String dropOff = user_input.next();

System.out.print("Enter in trip distance in km:  ");
System.out.flush();
Double tripDist = user_input.nextDouble();
user_input.nextLine();

然后,您需要以String(s),

的格式包含输出类型
String m1 = "The pickup point was: %s%n"; // %n or \n - both are newline
String m2 = "The drop off point was: %s%n";
String m3 = "The pickup time was: %s%n";
String m4 = "Estimated distance (km): %f%n";
String m5 = "Fare Charged: $%.2f%n";
String m6 = "Base fare: $%.2f%n";
String m7 = "Total fare: $%.2f%n";

接下来,当你调用printf()时,你应该传递参数,而不是连接 -

System.out.printf(m1, pickUp);
System.out.printf(m2, dropOff);
System.out.printf(m3, startTime);
System.out.printf(m4, tripDist);
System.out.printf(m5, fareRate);
System.out.printf(m6, baseFare);
System.out.printf(m7, totalFare);

然后我认为它会按预期工作。