What's up with Java's "%n" in printf?

ripper234 picture ripper234 · Dec 10, 2009 · Viewed 93k times · Source

I'm reading Effective Java and it uses %n for the newline character everywhere. I have used \n rather successfully for newline in Java programs.

Which is the 'correct' one? What's wrong with \n ? Why did Java change this C convention?

Answer

Bill K picture Bill K · Dec 10, 2009

From a quick google:

There is also one specifier that doesn't correspond to an argument. It is "%n" which outputs a line break. A "\n" can also be used in some cases, but since "%n" always outputs the correct platform-specific line separator, it is portable across platforms whereas"\n" is not.

Please refer https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

Original source