

中嶋悟
名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝
lenとlenbの違いを理解するための基本ポイント
長さを測る関数にはいくつかの呼び方がありますが、ここで登場する「len」と「lenb」は特に混乱しやすい言葉です。
まずlenは文字数を数える機能として使われる場面が多く、表示やレイアウトを決めるときに役立ちます。
一方でlenbはバイト長を指すことが多いのが特徴です。バイト長というのは、文字を実際にデータとして保存したり、送信したりする際に必要な容量を表します。
つまり、lenが何文字あるかを知ること、lenbが何バイト必要かを知ることは、データの扱い方を変える大切な情報になるのです。
ここで誤解されがちなのは、“1文字=1バイト”のような単純な対応です。日本語のように多くの文字を含む文字列では、1文字が必ずしも1バイトではありません。
使用している言語やエンコード、国の文字コードの仕組みによって、同じ文字列でもlenとlenbの値は異なることがあります。
例えば、英字だけの文字列ならlenとlenbの差がほとんど生まれませんが、日本語や絵文字を含むと差がはっきり出ることがあります。
それを理解しておくと、デバッグ時に「なぜ長さが合わないのか?」と混乱することが少なくなります。
このセクションでは、lenとlenbの意味を理解するための基本的な考え方を整理しました。後半には、現実的なコード例と、実務での使い分けのコツを紹介します。
lenとlenbの使い分けと実践的な例
次に、lenとlenbの使い分けを、現実の開発シーンを想定して見ていきます。
まず前提として、lenは表示用の長さを確認する場面で有効、lenbはデータを扱うときの容量計算に有効という点を押さえましょう。
古い環境の例として、Visual Basic 6.0のLenとLenBを挙げると、Lenは文字数を返すのに対してLenBは実際のバイト数を返します。これは、アプリがコードページやUnicodeの扱いに左右される場面と深く関わってきます。
例えば、ある文字列が日本語5文字で構成されているとします。Lenで現れる値は通常「5」ですが、LenBでは使われているエンコード次第で「10」になることがあります。ここが差の理由です。
実務では、データをデータベースに保存する予定があるときには、 LenBを使って容量を先に見積もる、あるいはネットワーク経由で送る前にバイト列に変換して長さを測る、などの対応が必要になることがあります。
ただし、現代の多くの言語ではLenBのような機能は標準では用意されていない場合が多く、代わりにエンコードを指定してバイト列を作成してから長さを取得します。これは「文字列をどう扱うか」という設計思想の違いにも関係します。
ここでは、実世界の開発でよくある3つの場面を挙げ、LenとLenBの使い方を見比べていきます。それぞれの場面での選択基準を理解しておくと、コードの読みやすさと品質がぐんと高まるはずです。
表では、基本的な違いをもう一度整理します。下面の表を参照してください。なお、実装言語が違えば細かい挙動も変わる点には気をつけてください。
この表を見れば、どの長さを測るべきかの判断がしやすくなります。特に、データを扱う前の設計段階で容量を見積もる必要がある場合はlenbの考え方が役立ちます。一方で、画面表示の字数制御やレイアウトの調整をする場合にはlenの考え方が直感的で分かりやすいです。
なお、ここで紹介した考え方はVB6のLen/LenBの挙動を中心としていますが、他の言語でも似たような概念は存在します。言語ごとの仕様を公式ドキュメントで確認する癖をつけると、混乱を避けられます。
ねえ、lenとlenbの話、どう考える?僕が最近思ったのは、同じ文字列でも使う場面で意味が全然違うってこと。lenは“この文字列には何文字あるのか”を知る道具、lenbは“この文字列を実際に保存するのに何バイト必要か”という容量の目安を教えてくれる道具なんだ。たとえば日本語の文字列なら、見た目の字数は5文字でも、内部的にはエンコード次第で10バイトになることがある。だから、データを送る前の準備やデータベースに入れる前の容量計算にはlenbを使うべき場合があるんだ。逆に、画面表示の文字数を揃えたいときはlenを使えば直感的。こんな感じで、用途とエンコードの理解が深まるほど、長さをめぐる迷いが減っていくよ。