это мой код до сих пор.
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 Я извиняюсь, если мне не следует редактировать это столько, сколько у меня есть.
Ваш код может быть короче, если вы объявили свои переменные в той же строке, которую вы их читали, и вы должны 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);
И тогда я думаю, что он будет работать так, как вы ожидаете.
user_input.nextLine();
после вашегоnextDouble()
, иначе выnextDouble()
пустой ввод.