Java文字列操作マスター:必須関数・メソッド・実践例
文字列とは
JavaにおいてStringは文字の不変シーケンスで、テキストデータを表す特殊な配列です。例えばROSEという単語は以下のように視覚化できます:
このガイドで学べること:
- Stringとは何か、なぜ重要か
- いつ使うべきか
- 一般的な構文パターン
- 連結テクニック
- 主要Java Stringメソッド
なぜStringを使うのか
テキスト処理はソフトウェア開発の核心部分——メニュー、ダイアログ、ログ、APIすべてがこれに依存。JavaのStringクラスはテキストデータを格納・操作する信頼性が高く型安全な方法を提供し、開発者がユーザーフレンドリーなインターフェース構築や複雑な文字列操作を最小オーバーヘッドで行えるようにします。
String構文例
文字配列からStringを作成することも可能ですが、最も一般的なのは文字列リテラル:
// 文字配列から作成
char[] arrSample = {'R', 'O', 'S', 'E'};
String strSample1 = new String(arrSample);
// 直接文字列リテラル
String strSample2 = "ROSE";
リテラル形式は自動的に文字列定数プールに配置され、メモリ節約とパフォーマンス向上を実現。
文字列連結
連結は2つ以上の文字列を1つに結合。Javaには便利な2方法:
concat()メソッド使用+演算子使用
例:
public class SampleString {
public static void main(String[] args) {
String str1 = "Rock";
String str2 = "Star";
// 方法1: concat
String str3 = str1.concat(str2);
System.out.println(str3);
// 方法2: +演算子
String str4 = str1 + str2;
System.out.println(str4);
}
}
主要Java Stringメソッド
すべてのJava開発者がマスターすべき必須メソッドを明確な例で紹介。
length()
String strSample = "RockStar";
System.out.println("Length of String: " + strSample.length());
出力:Length of String: 8
indexOf()
String strSample = "RockStar";
System.out.println("Character at position 5: " + strSample.charAt(5));
System.out.println("Index of 'S': " + strSample.indexOf('S'));
出力:
Character at position 5: t
Index of 'S': 4
charAt()
String strSample = "RockStar";
System.out.println("Character at position 5: " + strSample.charAt(5));
出力:Character at position 5: t
compareTo() & compareToIgnoreCase()
String strSample = "RockStar";
System.out.println("Compare To 'rockstar': " + strSample.compareTo("rockstar"));
System.out.println("Compare To 'ROCKSTAR' (ignore case): " + strSample.compareToIgnoreCase("ROCKSTAR"));
出力:
Compare To 'rockstar': -32
Compare To 'ROCKSTAR' (ignore case): 0
contains()
String strSample = "RockStar";
System.out.println("Contains 'tar': " + strSample.contains("tar"));
出力:Contains 'tar': true
endsWith()
String strSample = "RockStar";
System.out.println("Ends with 'r': " + strSample.endsWith("r"));
出力:Ends with 'r': true
replace() / replaceAll() / replaceFirst()
String strSample = "RockStar";
System.out.println("Replace 'Rock' with 'Duke': " + strSample.replace("Rock", "Duke"));
出力:Replace 'Rock' with 'Duke': DukeStar
toLowerCase() & toUpperCase()
String strSample = "RockStar";
System.out.println("Lower case: " + strSample.toLowerCase());
System.out.println("Upper case: " + strSample.toUpperCase());
出力:
Lower case: rockstar
Upper case: ROCKSTAR
重要なポイント
- Stringはfinalかつ不変。 作成後、内容は変更不可。
- Javaの文字列定数プールがリテラル文字列を格納、重複インスタンスを排除。
- Stringは
java.lang.Stringに属し、import不要。 - 参照の再代入(例:
h1 = "hello" + "world";)は元の文字列を削除せず、新オブジェクトを指すだけ。 - 複数参照が同じ文字列リテラルを指し、同一プールエントリを共有可能。
- 数値をクォート(例:
"123")すると文字列になる。数値と連結するとテキスト連結になるため、数値加算したい場合は明示的に数値を加える必要あり。
これら基本を押さえれば、よりクリーンで効率的なJavaコードが書けます。
Java
- Java抽象クラスとメソッド:包括的ガイド
- Java String.length()メソッド:文字列サイズ取得の実例解説
- Java String.indexOf()マスター:部分文字列検索と実践例
- Java String.charAt()完全解説:構文、戻り値、例外、実例
- Java String.compareTo()マスター:構文、ユースケース、実践例
- Java String.contains()メソッド:部分文字列チェックの実践例
- Java String.endsWith()マスター:文字列サフィックスチェック実例付き
- Java文字列置換マスター:replace()、replaceAll()、replaceFirst()徹底解説
- Java String toLowerCase() & toUpperCase():ロケール対応テキストケース変換
- Java BufferedReader でファイル読み込み:実践ガイドと例
- Javaで挿入ソート:わかりやすい例とステップバイステップガイド