Java-программа выводит пробелы между переменными, извлеченными из main (), что нормально. Однако я хотел бы удалить место в конце - PullRequest
0 голосов
/ 10 ноября 2019

Это мой код:

    import java.util.Scanner;

    public class LabProgram {

    public static double drivingCost(double drivenMiles, double dollarsPerGallon, double milesPerGallon)
    {  double totalCost = 0;
    totalCost = (drivenMiles / milesPerGallon) * dollarsPerGallon ;
    System.out.printf("%.2f", totalCost);
    System.out.print(" ");
    return totalCost;
    }
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    double milesPGallon;
    double dollarsPGallon;
    double driveMiles;
    double drivingCost;
    milesPGallon = input.nextDouble();
    dollarsPGallon = input.nextDouble();
    input.close();
    drivingCost(10, dollarsPGallon, milesPGallon);
    drivingCost(50, dollarsPGallon, milesPGallon);
    drivingCost(400, dollarsPGallon, milesPGallon);
    System.out.print("\r");
    }
    }

Вывод: '1.58 7.90 63.20' и мне нужно '1.58 7.90 63.20'. Как я могу удалить конечный пробел в выводе? Я пытался использовать trim () и replace (), но ни один из них не помог. Я новичок в Java и последние полтора дня бьюсь головой об стену, пытаясь понять это. Любая помощь будет признательна, даже если это всего лишь толчок в правильном направлении. Заранее спасибо.

1 Ответ

2 голосов
/ 10 ноября 2019

drivingCost печатает пробел при каждом вызове:

public static double drivingCost(double drivenMiles, double dollarsPerGallon, double milesPerGallon)
{
    double totalCost = 0;
    totalCost = (drivenMiles / milesPerGallon) * dollarsPerGallon ;
    System.out.printf("%.2f", totalCost);
    System.out.print(" "); // <-------- here!
    return totalCost;
}

Вы можете удалить эту строку и вместо этого напечатать пробел между вызовами drivingCost:

drivingCost(10, dollarsPGallon, milesPGallon);
System.out.print(" ");
drivingCost(50, dollarsPGallon, milesPGallon);
System.out.print(" ");
drivingCost(400, dollarsPGallon, milesPGallon);

Либо добавьте дополнительный параметр к drivingCost:

public static double drivingCost(double drivenMiles, double dollarsPerGallon, double milesPerGallon, boolean isLastCall)
{
    double totalCost = 0;
    totalCost = (drivenMiles / milesPerGallon) * dollarsPerGallon ;
    System.out.printf("%.2f", totalCost);

    if (!isLastCall) {
        System.out.print(" ");
    }
    return totalCost;
}

И назовите его так:

drivingCost(10, dollarsPGallon, milesPGallon, false);
drivingCost(50, dollarsPGallon, milesPGallon, false);
drivingCost(400, dollarsPGallon, milesPGallon, true);
...