Java での空白文字
Java で空白とみなされる文字は?と聞かれると、意外とよく分からない。 Character クラスの static メソッドに isSpaceChar() と isWhitespace() とが定義されているけど、JavaDoc を読んでも全然分からない。
ということで、実際に Character#isSpaceChar(), Character#isWhitespace() を実行してみました。 引数として渡したのは 0 〜 0xffff (65535) です。 下表は
- SC : isSpaceChar() の返り値が true なら「○」
- WS : isWhitespace() の返り値が true なら「○」
としてます。
Unicode | 文字 | SC | WS | Unicode | 文字 | SC | WS | Unicode | 文字 | SC | WS |
---|---|---|---|---|---|---|---|---|---|---|---|
\u0009 | '\t' | ○ | \u00a0 | ○ | \u2007 | ○ | |||||
\u000a | '\n' | ○ | \u1680 | ○ | ○ | \u2008 | ○ | ○ | |||
\u000b | ○ | \u180e | ○ | ○ | \u2009 | ○ | ○ | ||||
\u000c | '\f' | ○ | \u2000 | ○ | ○ | \u200a | ○ | ○ | |||
\u000d | '\r' | ○ | \u2001 | ○ | ○ | \u200b | ○ | ○ | |||
\u001c | ○ | \u2002 | ○ | ○ | \u2028 | ○ | ○ | ||||
\u001d | ○ | \u2003 | ○ | ○ | \u2029 | ○ | ○ | ||||
\u001e | ○ | \u2004 | ○ | ○ | \u202f | ○ | |||||
\u001f | ○ | \u2005 | ○ | ○ | \u205f | ○ | ○ | ||||
\u0020 | ' ' | ○ | ○ | \u2006 | ○ | ○ | \u3000 | ' ' | ○ | ○ |
\u3000 は「全角スペース」です。
XML での空白文字
XML での空白文字は次の4つです(「Extensible Markup Language (XML) 1.0 (Fifth Edition)」参照):
Unicode 文字 (XML) | 名前 | 文字リテラル (Java) | Unicode 文字 (Java) |
---|---|---|---|
#x20 | スペース (Space) | ' ' | \u0020 |
#x9 | 水平タブ (HT) | '\t' | \u0009 |
#xD | 復帰キャリッジ・リターン (CR) | '\r' | \u000d |
#xA | 改行 (LF) | '\n' | \u000a |
これらは全て、Java でも Whitespace とみなされます*1。
*1:一方、空白' ' 以外は SpaceChar とはみなされないようです。