Возникли проблемы с использованием printf ()

1

это мой код до сих пор.

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 (Final): я добавил больше к своему коду и теперь получил то, что вы видите выше, теперь все, что мне нужно сделать, это добавить надбавки, поэтому, когда на определенное время его определенная стоимость, а также надбавка за область, во всяком случае, не спрашивают для помощи, просто позволяя вам, ребята, знать, что вы много помогли, и я благодарю вас. BTW Я извиняюсь, если мне не следует редактировать это столько, сколько у меня есть.

  • 1
    Просто заметка с именем user_input.nextLine(); после вашего nextDouble() , иначе вы nextDouble() пустой ввод.
  • 0
    ааа ладно спасибо Роуг :)
Показать ещё 1 комментарий
Теги:
printf

1 ответ

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);

И тогда я думаю, что он будет работать так, как вы ожидаете.

  • 0
    ах ты классный, спасибо большое. все здесь были действительно полезны: D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню