Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. JavaのStringクラスとは?基本的な利用方法について紹介

JavaのStringクラスとは?基本的な利用方法について紹介

  • Java TIPS
公開日時:   更新日時:
JavaのStringクラスとは?基本的な利用方法について紹介
この記事でわかること

    システム
    エンジニア
    JavaのStringクラスとは、どのように利用するのでしょうか?

    プロジェクト
    マネージャー
    今回は、基本的な操作方法から解説していきましょう。

    javaでのstringクラスの利用方法について

    stringクラスとは、文字列操作に便利な機能を沢山保有しているクラスのこと。javaで文字列を扱う場合は、このstringクラスの機能を利用することになります。今回はそんなstringクラスについての解説と、基本的な利用方法をご紹介していきます。

    Stringクラスとは?

    stringクラスとは、文字列を扱うために実装されているクラスです。java.lang内に実装されているクラスのため、importをすることなく利用可能となっています。Javaプログラム上のリテラル文字列は全てstringクラスのインスタンスとして実行されることになります。リテラル文字列とは、ダブルクォーテーションで囲まれた、プログラムを実行する際に機械語に変換されない文字列のことであり、プログラム上で利用される””abc””や””あいう””のことを指します。そのため、stringクラスはnew演算子を使わなくてもオブジェクトを生成することが可能になっています。例えば、以下のようなコードはエラーになりません。String str = “”abc””;通常、クラスからオブジェクトを作る場合はnew演算子を利用しなければなりません。しかしダブルクォーテーションで囲まれた文字列は、コンパイラによって文字列オブジェクトとして自動で認識されるため、new演算子を利用しなくても生成することが可能なのです。もちろん、new演算子を利用して下記のようにstringクラスのオブジェクトを生成することもできます。

    Stringクラスの利用方法

    stringクラスには、多くの便利なメソッドが用意されています。その中でも基本的なメソッドを4つご紹介します。基本的に利用されているのは、以下の機能をもったメソッドです。・2つの文字列が同一かどうかを比較する・文字列の長さを取得する・文字列の中に指定する文字列がどの位置にあるかを検索する・文字列が空かどうかを調べるこれらのメソッドについて、コードを交えながらご紹介していきます。

    2つの文字列が同一かどうかを比較する

    javaで2つの文字列を比較する際に利用されるのが「equals」というメソッドになります。このメソッドを利用すると、同一の場合はtrue、異なる場合はfalseが返されます。つまり==と同様の機能を持っているのですが、javaで文字列を比較する際に==は利用してはいけないことになっています。なぜ利用してはいけないのかについては後ほど解説します。では、2つの文字列を比較するコードを確認していきましょう。

    実行結果

    このように、文字列の内容が同一の場合はtrue、異なる場合はfalseが返ってきます。

    ==とequalsの違いについて

    文字列の比較をする場合、javaでは==は正しく機能しない場合があります。そのため、==を利用することは推奨されていません。これは実際にコードを実行してみると確認することができます。

    実行結果

    同じ文字列を比較しているのに、結果が異なってしまっています。なぜこのようなことが起こるのかというと、最初の変数の宣言部分がポイントになってきます。これはJavaでのstringが、プリミティブ型ではなくクラスだということが関係してきます。プリミティブ型変数では、変数の中には値が直接格納されます。しかしながら、クラスを利用した変数は参照型変数と呼ばれるものになり、変数の中には値が格納されるのではなく、その値を保存している場所の住所が格納されているのです。==は変数の中身を直接比較します。違う宣言方法をした変数の中にはそれぞれ違う住所が格納されている為、異なっているという結果になってしまうのです。このような事態を防ぐためにも、文字列同士の比較をする場合はequalsメソッドを利用して比較するようにしましょう。

    文字列の長さを取得する

    文字列の長さを取得したい場合は、javaではlengthメソッドを利用します。lengthメソッドを利用すると、int型で文字数が返されます。実際のコードを見ながら確認してみましょう。

    実行結果

    このように、半角でも全角でも同様に文字数がカウントされます。

    指定する文字列がどの位置にあるかを検索する

    文字列の中に、指定する文字列がどの位置にあるかを検索したい場合はindexOfメソッドを利用します。これは、例えば文字列””あいうえお””の中に、””う””がどの位置にあるのかを検索してくれるメソッドとなります。見つかった場合は、先頭を0とした場合の番号が返ってきます。見つからなかった場合は「-1」が返ってきます。つまり、””あいうえお””の中から””う””を探した場合は、「2」が返ってきます。以下のコードで確認してみましょう。

    実行結果

    文字列が空かどうかを調べる

    文字列が空かどうかを確認したい場合は、isEmptyメソッドを利用します。空の場合はtrue、空ではない場合はfalseが返ってきます。それでは、実際にどのように利用するのか、以下のコードで確認しましょう。

    実行結果

    ここで注意していただきたいのは、空文字とnullは異なるということです。空文字とは””””のような、オブジェクトは存在しているが文字が入っていない状態のことであり、nullはそもそもオブジェクトが存在していない状態のことを指します。isEmptyでは空文字かどうかを判定できますが、nullは判定できないばかりか、NullPointerExceptionが発生します。以下のコードで確認してみましょう。

    実行結果

    この為、nullが含まれる可能性がある場合は、先にifなどを利用してnullではないことを確認してから実行する必要があります。

    実行結果
    このように、nullが含まれる可能性のある文字列は、isEmptyメソッドでいきなり判定しないようにしましょう。

    システム
    エンジニア
    JavaのStringクラスは、さまざまなことができるのですね。

    プロジェクト
    マネージャー
    そうですね。しかし、他のデータ型とは違った処理をしなければならないこともあるので、使い方には充分注意しましょう。

    stringを便利に使いこなそう

    stringはjavaの中でも多く利用されるデータ型です。しかし、javaでのstringはプリミティブ型ではなくクラスのため、他のデータ型とは違った処理をしなければならない箇所が多くあります。しかしながら、クラスであるために便利なメソッドが多く利用できるようになっています。JavaDocを確認しながら、stringを便利に使いこなしていきましょう。

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job