Java程序在从main()提取的变量之间输出空格,这很好。但是我想删除尾随空格

问题描述 投票:0回答:1

这是我的代码:

    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的新手,在过去的一天半里,我一直都在想办法解决这个问题。任何帮助都将受到赞赏,即使它只是朝着正确方向前进。先感谢您。

java methods double
1个回答
1
投票

[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);
© www.soinside.com 2019 - 2024. All rights reserved.