空白と空文字の違いは何?スペースやブランク、NULLについても!
SE(いや、PGかな)駆け出しのころは全く使い分けられていなかったこの違い。
でも違いが分かってくると、矛盾した使い方に出くわすと気になって仕方がなくなってきます(笑)
空白なの?空文字なの?
見た目は違わないけれど、システムでは大違い!
脱初心者には必須事項なので、スペース、ブランクも含めてぜひ覚えていってくださいね!
空白と空文字の違いは長さ!
空白は長さがありますが、空文字は長さがありません。
なんのこっちゃという感じですか?ね?
空白を表すと、「” ”」とか「” “」とかです。
長さがありますね。
そう、「ある」状態なのです。
一方、空文字は「””」。
長さが0文字(0バイト)の文字列です。
文字がカラ(空=ない)ということですね。
- 空白:「” ”」や「” ”」など
- 空文字:「””」
なので、空白≠空文字ですよ!
空白とスペースは同じ意味
空白とスペースは同じ意味です。
長さがある文字列です。
ほら、半角スペースとか全角スペースとか言いますよね。
こう聞くとイメージできたのではないでしょうか?
半角空白とはあまり言いませんけれども・・・。
空文字とブランクは同じ意味
空文字とブランクも同じ意味です。
空白を英訳するとBlankとなるので混乱する人もいるかもしれませんが、ブランクは長さのない文字列=空文字のことを表します。
「””」ですよ!「””」。
NULLは何もない
NULLとは何もないこと意味しています。
これが一番わかりにくい!(笑)
最初は全く理解できませんでした。。。
ちょっと難しくなってきたのでジュースでもいかがでしょう!
そう、例えばこんな感じです(絵が下手でごめんなさい・・・)。
①は美味しそうなジュースがなみなみある状態。
そう”ある”状態です。
空白(スペース)もこれに該当します。
空白が”ある”のです。
相当のどが渇いていたようです。
あっという間に飲んで、空になってしまいました。
それが②の状態ですが、察しがいい人は分かりましたね。
空文字のイメージはこんな感じ。
”中身がない”状態です。
で、じゃぁ、③なのですが、これは中身どころかそもそもコップがない、つまり何にもない状態。
これがNULLです。
イメージつきましたでしょうか??
Javaプログラミングをしていると「NullPointerException」という例外エラーが発生することがあります。
これはNULLのところに、何かをしようとする(何もないところにジュースを注ごうとするようなイメージ)ので怒られちゃうわけですね。
このエラーのことをかわいく?「ぬるぽ」と言ったりしますが、もしかしてできる人?!という印象を与えるのでぜひ使ってみてくださいね(笑)
まとめ
さて、空白、空文字、スペース、ブランク、NULLを説明しましたが、その違いが分かりましたでしょうか?
- 空白とスペースは同じ意味で長さがある状態
- 空文字とブランクは同じ意味で長さがない状態
- NULLは何にもない状態
でしたね。
違いを理解して、脱初心者しちゃいましょう!