はじめに
Java を学び始めると必ず出てくる疑問が
「配列は length、String は length() なのはなぜ?」 という話。
見た目は似ているのに、
- 配列 →
length(プロパティ) - String →
length()(メソッド)
と書き方が違うため、初心者がつまずきやすいポイントです。
この記事では、やさしく・実務寄りに
配列の length と String.length() の違いを整理していきます。
結論:配列は「プロパティ」、String は「メソッド」
| 対象 | 書き方 | 種類 | 意味 |
|---|---|---|---|
| 配列 | array.length | フィールド(プロパティ) | 要素数 |
| String | str.length() | メソッド | 文字数 |
この違いを押さえるだけで一気に理解が深まります。
配列の length は「フィールド(変数)」
Java
int[] numbers = { 10, 20, 30 };
System.out.println(numbers.length); // 3特徴
lengthは 変数(プロパティ)- 括弧がない
- 値が固定(配列のサイズは変えられない)
なぜフィールドなのか?
配列は Java の 組み込みの構造 であり、
「要素数」という情報を そのまま持っている ため。
String.length() は「メソッド」
Java
String s = "Hello";
System.out.println(s.length()); // 5特徴
length()は メソッド- 括弧が必要
- 実行時に文字数を計算して返す
なぜメソッドなのか?
String は クラス(オブジェクト) であり、
文字列の長さは内部データから計算して返すため。
実例で比較してみる
配列の場合
Java
int[] a = new int[5];
System.out.println(a.length); // 5配列の長さは 固定。
length はただの値。
String の場合
Java
String s = "Java";
System.out.println(s.length()); // 4文字列の長さは 計算結果。
length() はメソッド。
よくあるミスと注意点
ミス①:配列に length() を書いてしまう
Java
numbers.length(); // エラー配列はフィールドなので括弧は不要。
ミス②:String に length を書いてしまう
Java
s.length; // エラーString はメソッドなので括弧が必要。
ミス③:配列の length を変更しようとする
Java
numbers.length = 10; // エラー配列は固定長。
サイズを変えたい場合は List を使う。
実務での使い分け
配列の length を使う場面
- for 文でループするとき
- 配列のサイズを確認したいとき
Java
for (int i = 0; i < arr.length; i++) { ... }String.length() を使う場面
- 入力文字数のチェック
- バリデーション
- 文字列処理全般
Java
if (name.length() > 20) { ... }まとめ
配列
length(フィールド)- 括弧なし
- 要素数をそのまま保持
- サイズは固定
String
length()(メソッド)- 括弧あり
- 文字数を計算して返す
- null の場合は注意(ぬるぽ)

decopon
length と length() は、 「配列はプロパティ」「String はメソッド」 この違いを知るだけで一気に理解が深まります。Java Bronze の試験でも、実務のコードリーディングでも、 ここを押さえておくと安心して配列と文字列を扱えます。あなたの学びが、次のステップにつながりますように。

moco
配列は“箱の数”、String は“文字の数”。
同じ length でも、実は別物なんだよ。

コメント