我无法弄清楚为什么我的代码导致PrintStream转到新行:
// displays the total time of the leak in months from the calculateLeakTime() method.
String leakTime = LeakCalculator.calculateLeakTime();
System.out.println("The total time of the leak is " + leakTime + " months.");
输出如下:
“泄漏的总时间为12
几个月。“
我无法弄清楚为什么要在新线上打印月份。我甚至试过这个:
// displays the total time of the leak in months from the calculateLeakTime() method.
String leakTime = LeakCalculator.calculateLeakTime();
System.out.print("The total time of the leak is " + leakTime);
System.out.println(" months.");
我得到了相同的输出。有人可以解释为什么它将“几个月”转移到新的生产线上吗?
谢谢,
凯文
编辑:这是calculatLeakTime()方法:
static String calculateLeakTime() throws ParseException{
long leakEndMili = getLeakEnd();
long leakBeginMili = getLeakBegin();
long timeDays = ((leakEndMili - leakBeginMili) / (1000 * 60 * 60 * 24));
double timeMonths = (double) (timeDays * 0.0328549);
System.out.println(timeMonths);
String monthsRounded = String.format("%.0f%n", timeMonths);
return monthsRounded;
}
答案 0 :(得分:0)
这样做是因为您的LeakCalculator.calculateLeakTime()
方法将换行符"\n"
添加到它返回的String的末尾。为了确定,请打印出组成String返回的各个字符。
要解决此问题,请修复您的LeakCalculator.calculateLeakTime()
方法,以便它不会为其返回的字符串添加换行符。也许它应该返回一个数字,而不是一个字符串。
修改强>
你说:
我怀疑这是问题格式(“%。0f%n”,timeMonths)
是的,%n
是一个换行符。
答案 1 :(得分:0)
从以下行中删除“%n”:
String monthsRounded = String.format(“%。0f%n”,timeMonths);