这是我的代码:
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 新手,在过去的一天半里我一直在用头撞墙试图解决这个问题。任何帮助将不胜感激,即使它只是朝着正确方向插入。先感谢您。
最佳答案
driveCost
每次调用时都会打印一个空格:
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;
}
您可以删除该行,并在对 driveCost
的调用之间打印一个空格:
drivingCost(10, dollarsPGallon, milesPGallon);
System.out.print(" ");
drivingCost(50, dollarsPGallon, milesPGallon);
System.out.print(" ");
drivingCost(400, dollarsPGallon, milesPGallon);
或者,向 driveCost
添加一个额外参数:
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);
关于Java 程序在从 main() 拉出的变量之间输出空格,这很好。不过我想删除尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58783598/