2014-02-21 3 views
1

Я не могу понять, почему мой код вызывает PrintStream, чтобы перейти к новой строке: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."); 

И у меня такой же выход. Может ли кто-нибудь объяснить, почему он перемещает «месяцы» на новую строку?

Спасибо,

Kevin

EDIT: Вот метод 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

Было бы здорово, если бы вы смогли показать нам метод 'calculateLeakTime'. Весьма вероятно, что этот метод вызывает проблему. – ltalhouarne

ответ

0

Удалить "% п" со следующей строки:

Строка monthsRounded = String.Format ("% 0f% п.", TimeMonths);

0

Это делает это потому, что ваш метод LeakCalculator.calculateLeakTime() добавляет новую строку, "\n" до конца строки что он возвращается. Чтобы точно сказать, распечатайте отдельные символы, которые составляют возвращаемую строку.

Чтобы решить эту проблему, исправьте свой метод LeakCalculator.calculateLeakTime(), чтобы он не добавлял строку к возвращаемой строке. Возможно, он должен вернуть число, а не строку.


Редактировать
Вы состояние:

Я подозреваю, что это формат выпуска ("% 0f% п.", TimeMonths)

Ну да, %n является символ новой строки.

+0

Спасибо ... Я подозреваю, что это проблема 'format ("%. 0f% n ", timeMonths)' –

+0

@KevinBright: да, это правильно - см. Править. –

+0

Спасибо большое ... Как только вы указали, что это было что-то в моем методе, это имело смысл. –