Javaの場合、Double
の場合、NaN
(Not A Number)の値があります。Javaキャラクター:「キャラクターではない」という値がありますか?
Character
の場合、「キャラクターではない」と同等の機能を備えていますか?
回答が「いいえ」の場合、安全な代替品はであり、値が\u0000
であるCharacter.MIN_VALUE
となると思います。この代用品は十分安全だと思いますか?それとも別の提案がありますか?
Javaの場合、Double
の場合、NaN
(Not A Number)の値があります。Javaキャラクター:「キャラクターではない」という値がありますか?
Character
の場合、「キャラクターではない」と同等の機能を備えていますか?
回答が「いいえ」の場合、安全な代替品はであり、値が\u0000
であるCharacter.MIN_VALUE
となると思います。この代用品は十分安全だと思いますか?それとも別の提案がありますか?
数学では、「数ではない」という概念があります.5を0で割った数値は数字ではありません。この概念が存在するため、double
タイプの場合はNaN
です。
文字は数字を文字にマッピングする抽象的な概念です。使用している文字セット(UTF-8、UTF-16など)が異なるため、「文字ではない」という考えは実際には存在しません。
このように考えてください。私が "5を0で割ったものは何ですか?"と尋ねると、それは「数ではない」と言います。しかし、数字ではないにしても、値を表すための明確な方法があります。私がランダムなくすぐりを描いて、「これは何の手紙ですか?」と尋ねると、「それは手紙ではない」と言います。しかし、我々私は今描いたものの外にそのくすぐりを実際に表す方法がありません。私が今描いた "非文字"を伝える実際の方法はありませんが、0で割った5の "非数値"を伝える方法があります。
はまだヌル文字ですキャラクター。あなたは正確に何を達成しようとしていますか?あなたの目標に応じて\u0000
で十分でしょう。
はい、私は実際には 'null'で十分だろうということに同意します。あるいは、Java 8では、値が関数から返された値の場合、Reimeusが提案したように 'Optional
"not-a-number"の概念は実際にJavaに属しません。むしろ、Javaではdouble
がIEEE 754 double precision floating-point numbersであると定義されています。 (つまり、私が正しくリコール場合、JavaはIEEE 754が実装に開いたままことはNaNに関するいくつかの詳細を指定しない、と述べた。)
ジャワchar
ための類似の標準はユニコードである:JavaはUTF-16コード単位であるとしてchar
を定義します。
Unicodeには、使用できる予約済みの未定義の文字がさまざまです。たとえば、U+FFFF('\uFFFF'
)は決して文字ではありません。また、U+FFFD('\uFFFD'
)を使用することもできます。はですが、特にガベージや無効な文字の置換に適した「置換文字」です。
何をしようとしているかによって異なります。あなたは、文字の欠如を表現しようとしている場合は、文字のコードは、の値より大きいか「A」の値に等しく、以下の場合
Optional<Character> noCharacter = Optional.empty();
は、あなたがチェックできる行うことができます'Z'。これは、キャラクターではないキャラクターでなければ、アルファベット文字を意味します。あなたは疑問符、フルストップ、カンマなどの記号にも拡張できますが、ASCII領域よりも進んでいたい場合は、手が届かないと思います。
もう1つの方法は、何かが数字かどうかを確認することです。そうでない場合は、白い文字かどうかを確認し、そうでない場合はその他すべてが文字として修飾されるため、答えが得られます。 これは長い話題です。なぜなら、文字が何であるかに応じて回答が異なるからです。
あなたの提案をありがとう。しかし、私の質問は、実際には "値を決定する方法は文字かどうか"ではなく、 "そのような値を表現する方法"についてです。私の質問の目的のために、私は「ヌル」かもしれない他の提案を受け入れることで十分です。 – leeyuiwah
@leeyuiwahああ、私は参照してください!それを明確にしていただきありがとうございます。 –
最初に何をしようとしていますか? – Tunaki
「ヌル」はどうですか? –
私の動機は、 'Double'のために' NaN'が必要な理由です。時には 'Double'型の値を渡す必要がありますが、値は本当に倍精度浮動小数点値ではありません。まあ...私はこの回答をタイプしていたときに、Java 8では 'null'を使うことができ、値が関数から返された場合、Reimeusが持っている' Optional 'を使うことができました提案する。ありがとう! –
leeyuiwah