1

我无法弄清楚为什么我的代码导致 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; 
    }
4

2 回答 2

0

从以下行中删除“%n”:

StringmonthRounded = String.format("%.0f%n", timeMonths);

于 2014-02-21T03:11:32.993 回答
0

这样做是因为您的方法在它返回的字符串的末尾LeakCalculator.calculateLeakTime()添加了一个换行符。"\n"为了确定,打印出构成返回字符串的各个字符。

要解决此问题,请修复您的LeakCalculator.calculateLeakTime()方法,使其不会向其返回的字符串添加换行符。也许它应该返回一个数字而不是一个字符串。


编辑
你状态:

我怀疑这是问题格式("%.0f%n", timeMonths)

嗯,是的,%n是一个换行符。

于 2014-02-21T02:31:39.467 回答