#8 Javaで学ぶ文字列操作の基本

Javaの文字列操作は、豊富な機能が標準で用意されている一方、比較の際の注意点でつまずきやすい分野でもあります。この記事では、Javaにおける文字列操作の基本と、実務でよく使うテクニックを解説します。

文字列を連結する

String greeting = "こんにちは、" + name + "さん";

Javaでは+による連結がそのまま使えます。ただし、ループの中で大量の文字列を連結する場合は、内部で新しい文字列オブジェクトが作られ続けて非効率になることがあるため、StringBuilderを使う方法もあります。

StringBuilder sb = new StringBuilder();
for (String word : words) {
    sb.append(word).append(",");
}
String result = sb.toString();

よく使う文字列操作

  • name.length() 文字数を調べる
  • name.toUpperCase() 大文字に変換する
  • name.replace("A", "B") 文字を置き換える
  • name.split(",") 指定した記号で分割する
  • name.trim() 前後の余分な空白を取り除く
  • name.substring(0, 3) 指定した範囲だけ取り出す

文字列の一部を検索する

ある文字列が別の文字列に含まれているかどうかはcontains()、含まれている位置を数値で知りたい場合はindexOf()を使います。

if (name.contains("太")) {
    System.out.println("「太」が含まれています");
}
int pos = name.indexOf("太"); // 見つからない場合は-1

文字列の比較にはequals()を使う

以前の記事でも触れましたが、Javaで文字列の中身を比較する際は==ではなくequals()を使う必要があります。

if (name.equals("太郎")) {
    System.out.println("太郎さんです");
}

大文字・小文字を区別せず比較したい場合はequalsIgnoreCase()が便利です。

Javaならではの注意点

lengthは配列では「値そのもの」として使いますが、文字列(String)ではlength()という「機能」として、かっこを付けて呼び出します。似ているようで書き方が異なるため、混同しないよう注意しましょう。また、Javaの文字列は一度作られると内容を変更できない「不変(イミュータブル)」なオブジェクトです。replace()やtoUpperCase()は元の文字列を書き換えるのではなく、新しい文字列を作って返しているという点も覚えておくと理解が深まります。

まとめ

Javaの文字列操作はlength()・toUpperCase()・split()・substring()などが基本です。比較には必ずequals()を使うこと、大量の連結にはStringBuilderを検討することを覚えておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本