ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
定義
| 修飾子と型 | メソッドと説明 |
|---|---|
public int | length()文字列の長さ(UTF-16 コードユニット数)を返す |
基本的な使い方
String s = "Hello";
System.out.println(s.length()); // 5
String empty = "";
System.out.println(empty.length()); // 0
String japanese = "あいうえお";
System.out.println(japanese.length()); // 5
BMP(Basic Multilingual Plane)内の漢字・かな・英字は 1 文字 = 1 コードユニットなので、見たままの文字数になります。
改行コードに注意
末尾の \n や \r\n も文字としてカウントされます。ファイルや標準入力から 1 行読んだだけのつもりが、想定より 1〜2 多い、というのは典型的なバグです。
String a = "abc\n";
System.out.println(a.length()); // 4 ← \n も 1 つ
String b = "abc\r\n";
System.out.println(b.length()); // 5 ← \r と \n で 2 つ
改行コードを取り除く方法は 改行コードの削除 を参照してください。Java 11+ なら String.strip() で前後の空白・改行を一括除去できます。
String trimmed = "abc\r\n".strip();
System.out.println(trimmed.length()); // 3
サロゲートペアと codePointCount
絵文字や一部の漢字(𠮷 など)は Unicode コードポイントとしては 1 文字ですが、UTF-16 では2 つのコードユニット(サロゲートペア)で表現されます。length() はコードユニット数を返すため、こうした文字は2 とカウントされます。
String emoji = "😀";
System.out.println(emoji.length()); // 2 ← サロゲートペア
// 実際のコードポイント数(≒ 人間が見た文字数)
int real = emoji.codePointCount(0, emoji.length());
System.out.println(real); // 1
「実際の文字数」が欲しい場合は codePointCount を使います。書記素クラスター(家族絵文字や肌の色付き絵文字)まで含めて 1 単位として数えたい場合は java.text.BreakIterator が必要です。
配列の length との違い
初学者が混同しがちなポイントです。
| 対象 | 記述 | 種類 |
|---|---|---|
| 文字列 | str.length() | メソッド(カッコ必須) |
| 配列 | arr.length | フィールド(カッコ不要) |
| List / Map | list.size() | メソッド(カッコ必須) |
String s = "abc";
int[] a = {1, 2, 3};
List<Integer> l = List.of(1, 2, 3);
s.length(); // OK
// s.length // コンパイルエラー
a.length; // OK
// a.length() // コンパイルエラー
l.size(); // OK
パフォーマンス
String.length() は内部の文字配列の長さフィールドを返すだけの O(1) 操作です。ループの終了条件に書いても問題ありませんが、可読性のためにループ前に変数へ取り出すのも一般的です。
for (int i = 0, n = s.length(); i < n; i++) {
// ... s.charAt(i)
}
長さ系メソッドの一覧
| メソッド | 意味 |
|---|---|
length() | UTF-16 コードユニット数 |
isEmpty() | length() == 0 と等価 |
isBlank() (Java 11+) | 空 or 空白のみなら true |
codePointCount(begin, end) | 区間内のコードポイント数 |
getBytes(charset).length | 指定文字コードでのバイト数 |
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?