White space consists mostly of the space character that you produce by hitting the space bar on your keyboard and that is commonly used to separate words in sentences. There are four other white space characters in Java, the horizontal tab, the form feed, the carriage return, and the linefeed. Depending on your platform, when you hit the return or enter key, you get either a carriage return (the Mac), a linefeed (Unix) or both (DOS, Windows, VMS). This produces a hard line break in the source code text.
Outside of String
literals Java treats all white
space and runs of white space (more than one white space character
in immediate succession) the same. It's used to separate tokens,
and one space is as good as seven spaces, a tab and two carriage
returns. Exactly which white space characters you use is primarily
a result of what's convenient for human beings reading the code.
The compiler doesn't care.
Inside String
and character literals the only white
space permitted is the space character. Carriage returns, tabs,
line feeds and form feeds must be inserted with special escape
sequences like \r
, \t
, \f
,
and \n
. You cannot break a String across a line like
this:
String poem = "Mary had a little lamb
whose fleece was white as snow
and everywhere that Mary went
the lamb was sure to go.";
Instead you must use \n
and the string concatenation
operator, +
, like this:
String poem = "Mary had a little lamb\n" +
"whose fleece was white as snow\n" +
"and everywhere that Mary went\n" +
"the lamb was sure to go.";
Note that you can break a statement across multiple lines, you just
can't break a String
literal.
Also note that \n
only works on Unix. You should
probably use System.getProperty("line.separator")
instead to return the proper line separator string for the platform
your program is running on.
Java does not have all the escape sequences C has. Besides those already mentioned it has only \b for backspace, \\ for the backslash character itself.
There are also \u escapes that let you include any Unicode character.