Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Javaで最も利用するクラスの1つに文字列を扱う「String」クラスがあります。

本記事では、JavaのStringクラスを利用した文字列操作について基本的な使い方をご紹介していきます。

Javaで文字列を扱うStringクラスとは

Javaで文字列を扱うためには標準ライブラリの中に用意されているStringクラスを利用します。

Stringクラスでは文字列を保持し、様々な操作を行うことが出来るメソッドが提供されています。

Stringクラスの宣言方法

Stringクラスでは利用する際の宣言方法として下記のように記載します。

String str;

宣言と同時に初期値を設定することも可能です。

String str = "ABCDE";

Stringクラスではnew演算子を使わないの?

オブジェクト指向をご存知の方は、クラスをインスタンス化するためのnew演算子を使わないのかと疑問に思う方もいらっしゃるかと思います。

もちろんStringもクラスですので下記のような記述方法が可能です。

String str = new String("ABCDE");

Stringクラスでは他の参照型クラスと異なり、new演算子を使用せず直接値を設定することが可能な仕組みが予め用意されているため、new演算子を使用せずに値を設定する方法が一般的です。

new演算子を使用するとメモリ領域の面でも無駄な処理が発生してしまうので、直接値を設定する方法が推奨されています。

Javaでの文字列結合の方法を理解しよう!

まずはJavaの文字列操作で利用する機会の多い文字列結合の方法をご紹介していきたいと思います。

「+」演算子を用いた文字列結合

Javaでは「+」演算子を利用することで簡単に文字列結合を行うことが可能です。

文字列 + 文字列

「+」演算子を用いた文字列結合のサンプルコード

実際にJavaプログラムで文字列結合を行ったサンプルが下記のコードです。

public class Main {
    public static void main(String[] args) throws Exception {
      String str1 = "ABCDE";
      String str2 = "あいうえお";
      System.out.println(str1 + str2);
    }
}

サンプルコードを実行した結果が下記の通りとなります。

ABCDEあいうえお

「concat」メソッドを用いた文字列結合

Stringクラスに用意されている「concat」メソッドを利用することでも文字列結合が可能です。

文字列.concat(文字列);

concatメソッドを用いた文字列結合のサンプルコード

Javaプログラムでconcatメソッドを利用した文字列結合のサンプルコードが下記となります。

public class Main {
    public static void main(String[] args) throws Exception {
      String str1 = "ABCDE";
      String str2 = "あいうえお";
      System.out.println(str1.concat(str2));
    }
}

出力結果は下記の通りです。

ABCDEあいうえお

Javaでの文字列比較の方法を確認しよう!

Javaプログラムにおいて、文字列比較も頻出処理の1つです。

文字列を比較する際にはStringクラスの「equals」メソッドを利用します。

equalsメソッドを用いた文字列比較

equalsメソッドを用いた構文は下記の通りとなります。

文字列.equals(文字列);

equalsメソッドを用いた文字列比較のサンプルコード

JavaプログラムでStringクラスのequalsメソッドを用いた文字列比較のサンプルコードが下記となります。

public class Main {
    public static void main(String[] args) throws Exception {
      String str1 = "あいうえお";
      String str2 = new String("あいうえお");
      if(str1.equals(str2)) {
        System.out.println("文字列は同じです。");
      } else {
        System.out.println("文字列は異なります。");
      }
    }
}

サンプルコードを実行した結果は下記の通りとなります。

文字列は同じです。

Javaの文字列比較で「==」演算子はなぜ推奨されないのか?

比較演算子の代表として「==」演算子の存在がありますが、Javaの文字列比較では利用が推奨されていません。

「==」演算子を用いて比較を行った場合、メモリ上の同じ場所に比較した文字列が格納されているかを確認しているため厳密な文字列比較とは異なることが理由となります。

サンプルコードのequalsメソッドで比較している部分を「==」演算子に変更してみると、「文字列は異なります。」と出力されることがご確認頂けます。

nullかどうかを確認するためには「==」演算子での比較が必要

「==」演算子での文字列比較は推奨されていないと上述しましたが、文字列が「null」かどうかを判断するためには「==」演算子でのチェックが必要となります。

Stringクラスの「equals」メソッドは文字列がnullの場合、nullPointerExceptionが発生してしまいます。

つまり、比較対象の文字列にnullが含まれる可能性がある場合には、「==」演算子でnullチェックを行った上で「equals」メソッドで文字列比較を行う必要があります。

nullを考慮して文字列比較を行ったサンプルコードの完成形

文字列にnullが含まれている可能性を考慮して作成したサンプルコードが下記となります。

public class Main {
    public static void main(String[] args) throws Exception {
      String str1 = null;
      String str2 = new String("あいうえお");
      if(str1 == null) {
        System.out.println("文字列にnullが設定されています。");
      } else {
        if(str1.equals(str2)) {
          System.out.println("文字列は同じです。");
        } else {
          System.out.println("文字列は異なります。");
        }
      }

    }
}

サンプルコードを実行した結果が下記の通りとなります。

文字列にnullが設定されています。

Stringクラスのequalsメソッドでは、サンプルコードの「str1」変数に該当する文字列が「null」の場合に、NullPointerExceptionを出力します。

ポテパンダの一言メモ

不注意によるバグを生まないように、文字列にnullが入る可能性のある場合は、nullチェックを行った後equalsメソッドでの文字列比較を行う必要があることをしっかりと意識しておきましょう。

さいごに:Javaの文字列(String)クラスには便利なメソッドがたくさん用意されている

本記事では、Javaで文字列を扱うクラスとして「String」クラスの基本情報から頻出メソッドの紹介を行ってきました。

Stringクラスにはまだまだ便利なメソッドがたくさん用意されており、文字列の「抽出」「検索」「置換」「整形」など様々な処理を行うことが可能です。

一気に様々な処理を覚えることは難しいと思いますので、まず今回ご紹介したStringクラスの使い方から徐々に新しいメソッドも利用出来るように挑戦してみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。