-4

Character.isSpaceChar('\u0009')Java 1.7 で false を返すのはなぜですか? この文字は、「\t」または文字列ベースの英語で「水平タブ」とも呼ばれます。私の目とウィキペディアによると、この文字空白です。しかし、Java は誤りを報告します。

また、 unicode.orgですべての文字カテゴリを出力するリストまたは表を見つけようとしました(私の最終目標は、コードポイントとカテゴリ Zi、Zp、Zs* の間の公式のマッピングを見つけることです)。

※実はまた嘘をつきました。私の最終的な目標は、空白を計算する Java の能力をテストし、実際にカウントできる独自のライブラリを作成することです (彼は改行も削除する必要があります)。\sそれとも、この科学は有名なパターンに任せるべきでしょうか??

4

3 に答える 3

4

ドキュメントによると、スペースとして認識される文字には次の 3 つのカテゴリがあります。

  • SPACE_SEPARATOR
  • LINE_SEPARATOR
  • PARAGRAPH_SEPARATOR

タブはこれらのカテゴリのいずれにも当てはまらない (それはHORIZONTAL TABULATION) ため、isSpaceChar正しく返さfalseれます。

私の最終目標は、空白を計算するJavaの能力をテストすることです

このCharacter.isWhitespace関数はより包括的です。特に、HORIZONTAL TABULATIONカテゴリが含まれています。おそらく、それはあなたが使うべき機能です。

于 2013-04-14T11:51:53.967 に答える
0

そのためのJavadocによると:

指定された文字が Unicode スペース文字かどうかを判断します。文字は、Unicode 標準で空白文字として指定されている場合にのみ、空白文字と見なされます。このメソッドは、キャラクターの一般カテゴリ タイプが次のいずれかである場合に true を返します。

SPACE_SEPARATOR LINE_SEPARATOR PARAGRAPH_SEPARATOR

http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isSpaceChar(char)

したがって、Java ではなく Unicode で確認してください。

于 2013-04-14T11:54:22.263 に答える