Вы пытаетесь передать символ новой строки в аргумент String, то, что я не думаю, что работа. Лучше включить "%n"
в формат Строка передана в printf, и это даст вам независимую от ОС новую строку. Например:
System.out.printf("%.2f%n", costPerCourse1);
Или вы можете просто следовать своему printf с помощью бесплатного вызова SOP.
Редактировать
Я ошибаюсь. Аргумент строка может иметь действительный символ новой строки символ, и он работает:
public class TestPrintf {
public static void main(String[] args) {
String format1 = "Format String 1: %s";
String arg1 = "\nArgument String 1 that has new line\n";
System.out.printf(format1, arg1);
String format2 = "Format String 2 has new line: %n%s%n";
String arg2 = "Argument String2 without new line";
System.out.printf(format2, arg2);
}
}
возвращается:
Format String 1:
Argument String 1 that has new line
Format String 2 has new line:
Argument String21 without new line
Или:
System.out.printf("%s: %.4f%s%s", "Value:", Math.PI, "\n", "next String");
возвращается:
Value:: 3.1416
next String
Какой же выход сделать вас ожидать? – Maraboc