ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
空白を削除: trim / strip
もっとも一般的な「先頭・末尾の空白削除」は trim() / strip() で行います。Java 11 以降はUnicode 空白(全角スペース U+3000 等)も削除できる strip() を推奨。
String s = " hello world ";
s.trim(); // "hello world" — U+0020 以下のみ削除
s.strip(); // "hello world" — Unicode 空白も削除 (Java 11+)
s.stripLeading(); // "hello world "
s.stripTrailing(); // " hello world"
// 全角スペースを含む例
String z = " 全角空白 "; // 全角スペース U+3000
z.trim(); // " 全角空白 " — 削除されない!
z.strip(); // "全角空白" — 削除される
trim と strip の違い
| メソッド | 導入 | 削除対象 |
|---|---|---|
trim() | Java 1.0 | U+0020 (半角スペース) 以下のコードポイント(\t \n \r 等) |
strip() | Java 11 | Character.isWhitespace(int) が true となるすべて(全角スペース U+3000、Em スペース等を含む) |
stripLeading() | Java 11 | 先頭のみ |
stripTrailing() | Java 11 | 末尾のみ |
先頭・末尾の 1 文字を削除
String s = "(hello)";
// substring で両端 1 文字削除
String r1 = s.substring(1, s.length() - 1); // "hello"
// 先頭 1 文字だけ
s.substring(1); // "hello)"
// 末尾 1 文字だけ
s.substring(0, s.length() - 1); // "(hello"
// 安全に(空文字対策)
String safe = (s != null && s.length() >= 2)
? s.substring(1, s.length() - 1) : "";
正規表現で削除
String s = "***hello***";
// 先頭・末尾 1 文字を削除
s.replaceAll("^.|.$", ""); // "**hello**"
// 先頭の * 連続を削除
s.replaceAll("^\\*+", ""); // "hello***"
// 末尾の * 連続を削除
s.replaceAll("\\*+$", ""); // "***hello"
// 両端の * を削除
s.replaceAll("^\\*+|\\*+$", ""); // "hello"
// 両端の空白(trim 相当)
String t = " abc ";
t.replaceAll("^\\s+|\\s+$", ""); // "abc"
// 改行を含む文字列の先頭・末尾の空白
String multi = "\n abc \n";
multi.replaceAll("^\\s+|\\s+$", ""); // "abc"
StringBuilder で削除
StringBuilder sb = new StringBuilder("hello");
// 末尾 1 文字
sb.deleteCharAt(sb.length() - 1); // "hell"
// 先頭 1 文字
sb.deleteCharAt(0); // "ell"
// 範囲削除
sb = new StringBuilder("hello world");
sb.delete(5, 6); // "helloworld"(インデックス 5 のスペース削除)
// 末尾を切り詰める
sb.setLength(sb.length() - 1); // 末尾 1 文字削除
sb.setLength(3); // 先頭 3 文字だけ残す
commons-lang3 StringUtils.strip()
Apache Commons の StringUtils.strip(str, stripChars) は指定した文字を両端から削除できます。null も安全に扱えます。
import org.apache.commons.lang3.StringUtils;
StringUtils.strip(null); // null
StringUtils.strip(""); // ""
StringUtils.strip(" abc "); // "abc" — 空白
StringUtils.strip("abcXY", "XY"); // "abc"
StringUtils.strip("**abc**", "*"); // "abc"
StringUtils.stripStart("***abc", "*"); // "abc"
StringUtils.stripEnd("abc***", "*"); // "abc"
StringUtils.stripAccents("café"); // "cafe" — アクセント削除
用途別の使い分け
| 削除したいもの | 推奨 |
|---|---|
| 両端の空白(ASCII) | str.trim() |
| 両端の空白(全角含む) | str.strip() (Java 11+) |
| 先頭・末尾の 1 文字 | str.substring(1, str.length() - 1) |
| 先頭・末尾の任意の連続文字 | StringUtils.strip(str, "chars") |
| 改行のみ削除(CRLF 対応) | str.replaceAll("\\r?\\n$", "") |
| BOM 削除 | str.replaceAll("^\\uFEFF", "") |
| 大量に処理する場合 | StringBuilder で都度生成を避ける |
典型的なユースケース
// 1. CSV の各セルの前後空白除去
String[] cells = line.split(",");
for (int i = 0; i < cells.length; i++) cells[i] = cells[i].strip();
// 2. ユーザー入力の正規化
String input = request.getParameter("name");
String name = input == null ? "" : input.strip();
// 3. ダブルクォートで囲まれた文字列の外側を剥がす
String quoted = "\"hello\"";
if (quoted.startsWith("\"") && quoted.endsWith("\"")) {
quoted = quoted.substring(1, quoted.length() - 1);
}
// 4. ファイル読み込みで末尾改行除去
String line = reader.readLine(); // BufferedReader は \n は除去済
String content = Files.readString(path).stripTrailing();
// 5. URL の末尾スラッシュ除去
String url = "https://example.com/api/";
String normalized = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
FAQ
Q: trim と strip、どちらを使うべき?
A: 全角スペースを扱う日本語環境では strip() 推奨。Java 11+ なら基本 strip()。Java 8 だと trim() しかない。
Q: 元の文字列は変わる?
A: 変わりません。String は不変 (immutable) なので、戻り値を受け取って使う必要があります。
Q: trim() が null を返すことはある?
A: ありません。null に対しては NPE。先に str == null を確認するか、StringUtils.strip() を使う。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?