文字列型 もじれつがた
簡単に言うとこんな感じ!
文字列型は、コンピューターが「文字や文章」を扱うためのデータの種類だよ!「山田太郎」「hello@example.com」みたいな名前やメールアドレスなど、数字じゃなくて”文字”として扱いたいデータはぜんぶこれに入れるってこと!
文字列型とは
文字列型(String型) とは、プログラムの中で「文字の並び(=文字列)」を格納するためのデータ型です。名前・住所・メッセージ・URLなど、テキストとして扱いたいあらゆる情報がこのデータ型に分類されます。コンピューターは内部的にすべてを数値で処理していますが、文字列型を使うことで「これは文字として扱ってください」とプログラムに伝えられます。
文字列型は、整数型(int)や浮動小数点型(float)などの数値型 と並んで、プログラミングで最も頻繁に使われるデータ型のひとつです。システム開発の現場では、フォームへの入力・データベースへの保存・APIでのデータのやり取りなど、あらゆる場面で文字列型が登場します。
重要なのは、たとえ「123」という数字に見えても、文字列型として定義すれば「文字の “1”・“2”・“3” の並び」として扱われる点です。そのため、文字列の “123” に数値の 1 を足しても “1231” になる(連結)か、エラーになる言語がほとんどで、データ型の意識は発注・設計時に欠かせません。
文字列型の基本的な性質と構造
| 特性 | 説明 |
|---|---|
| 不変性(Immutable) | Pythonやのように「一度作った文字列は変更できない」言語が多い |
| 文字の連結 | "Hello" + " World" → "Hello World" のように結合できる |
| 長さ(Length) | 文字列に含まれる文字数を取得できる(例: len("abc") → 3) |
| インデックス参照 | 先頭を0として何番目の文字かを指定できる(例: "abc"[0] → "a") |
| 部分文字列(Substring) | 一部を切り出す操作(スライス)が可能 |
| 比較操作 | 2つの文字列が同じかどうかを比較できる |
文字列の表記方法(言語別)
プログラミング言語によって、文字列の書き方(クォートの種類)が異なります。
Python: name = "山田太郎" または name = '山田太郎'
Java: String name = "山田太郎";
PHP: $name = "山田太郎";
SQL: name = '山田太郎' (シングルクォートが一般的)
JSON: "name": "山田太郎" (ダブルクォートのみ)
文字列長の上限(主要DB・言語の比較)
| 環境 | 型名 | 最大長 |
|---|---|---|
| MySQL | VARCHAR(n) | 最大65,535バイト |
| MySQL | TEXT | 約65KB |
| MySQL | LONGTEXT | 約4GB |
| PostgreSQL | VARCHAR(n) | 最大10,485,760文字 |
| Java | String | 約21億文字(理論値) |
| Python | str | メモリの許す限り |
| SQL Server | NVARCHAR(MAX) | 約2GB |
歴史と背景
- 1960年代 — 初期のプログラミング言語(FORTRANなど)では文字列の扱いは非常に限定的。固定長の文字配列が主流だった
- 1964年 — BASIC言語が登場し、
$記号を末尾に付けた変数(例:NAME$)で文字列を扱う方式が普及 - 1970年代 — C言語が「文字の配列(char[])」として文字列を表現する方式を確立。末尾に
\0(ヌル文字)を置いて文字列の終端を示す方式(ヌル終端文字列)が広まる - 1980年代〜 — Pascal系言語では先頭バイトに長さを格納する「Pascal文字列」方式も使われた
- 1991年 — Python登場。文字列をオブジェクトとして扱い、豊富なメソッドを提供する設計が後の言語に影響を与える
- 1991年 — Unicode(文字コードの国際標準)が策定され、世界中の文字を統一的に扱うための土台ができる
- 2000年代〜 — Java・C#・Pythonなど多くのモダン言語が文字列をUnicodeベースで扱うようになり、多言語対応が標準化される
- 現在 — WebAPIやデータベースでのJSONやりとりでは文字列型が最重要データ型のひとつ。文字コード(UTF-8など)への理解がシステム設計に必須となっている
文字列型と文字コードの関係
文字列型を正しく扱うには、文字コード(エンコーディング) の理解が欠かせません。文字コードとは「どの文字にどの数値を割り当てるか」の規則集です。文字コードの不一致が「文字化け」の原因になります。
実務での注意ポイント:文字化けを防ぐには
システム発注・設計時に「文字コードをUTF-8に統一する」と明示することが、文字化けトラブルを防ぐ最短経路です。データベース・アプリ・ファイル転送の3つすべてで文字コードが一致していないと、特に日本語・中国語・絵文字などが文字化けします。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 3629 | UTF-8の仕様を定めた標準(8ビット形式のUnicode変換フォーマット) |
| RFC 20 | ASCII文字コードの定義(7ビット符号化文字集合) |
| RFC 5646 | 言語タグ(文字列の言語属性を示すフォーマット)の標準 |