Tabla de Contenidos
Java を含むほとんどのプログラミング言語では、連結とは、2 つ以上の文字列を 1 つの新しい長い文字列に結合する操作を指します。これは、使用されているプログラミング言語に応じてさまざまな方法で行うことができ、同じプログラミング言語内でも、文字列を連結する方法がいくつかあることがよくあります。
Java プログラミング言語の場合、文字列はStringと呼ばれる最も重要なデータ型の 1 つに分類されます。Java では、文字列はオブジェクトであり、それらを連結するには 2 つの異なる方法があります。1 つは加算または加算演算子 (+) を使用する方法で、もう 1 つはStringクラスのconcat()メソッドを使用する方法です。
両方の方法がどのように機能するかを見てみましょう。
+ 演算子を使用して Java で文字列を連結する
これは、Java で文字列を連結する最も簡単で最も広く使用されている方法の 1 つです。この形式の連結は、連結する文字列の間に + 演算子を挿入するだけです。
たとえば、次のように記述します。
「これは、Java で文字列を連結する方法です」 + 「。」
結果は次のようになります。Java で文字列を連結する方法は次のとおりです。
+ 演算子を使用すると、連続する複数の文字列を連結できます。
+ 演算子を使用して連結する利点の 1 つは、複数の文字列を次々に連結できることです。たとえば、「これが文字列の連結方法です」と「Java の」を組み合わせたいとします。そして「とても簡単です!」ということであれば、式の各ペアの間に演算子 + を挿入するだけで済みます。
「これは、Java で文字列を連結する方法です」 + 「。」+「とても簡単です!」
これにより、次のような文字列が生成されます。これは、Java で文字列を連結する方法です。簡単すぎる!
+ 演算子はprintln()ステートメント内で使用できます
複数の文字列を連結した結果を印刷したい場合、これはprintln()ステートメント内で + 演算子を使用するのと同じくらい簡単です。
+ 演算子を使用すると、さまざまなオブジェクトを文字列の形式で組み合わせることができます。
+ 演算子の重要な機能は、数値や文字列リテラル (“Hello world” などの引用符で囲まれた式) だけでなく、定義済みの変数を引数として受け入れることです。
オペレーターは、文字列以外のオブジェクトを操作するときにtoString()メソッドを自動的に呼び出し、それらを残りのオブジェクトに連結する前に文字列に変換することによってこれを実現します。このようにして、プログラミング環境内の他のオブジェクトから文字列の形式でメッセージを生成するために使用できます。
たとえば、次のコードは、いくつかの異なるオブジェクトを定義し、+ 演算子を使用してそれらを単一の文字列に連結し、画面に出力します。
文字列メッセージ1 = 「これが文字列の連結方法です」;
文字列メッセージ2 = 「異なるオブジェクト」;
int bnum = 3;
System.out.println (message1 + “from “ + numob + message2);
このコードを実行すると、次のメッセージが出力されます。
これは、文字列が 3 つの異なるオブジェクトから連結される方法です。
String クラスの「concat()」メソッドを使用して Java で文字列を連結する
Java では、オブジェクトのStringクラスに、+ 演算子と同様の機能を実行するconcat()メソッドがあります。つまり、1 つの文字列を別の文字列と連結できます。ただし、前述の演算子とはいくつかの基本的な違いがあります。
このメソッドは、引数として受け取る 2 番目のStringの文字を元のStringに連結することによって機能します。例えば:
文字列メッセージ1 = 「これが文字列の連結方法です」; // これにより文字列メッセージ1
文字列メッセージ2 = ” concat () メソッドを使用しています。”; // これにより文字列メッセージ2
message1 = message1.concat(メッセージ2); // これは message1 と message2 を連結します
System.out.println (メッセージ 1)
このコードの結果は、画面に表示されます。
これは、concat () メソッドを使用して文字列を連結する方法です。
Javaではどの連結方法が望ましいですか?
物事を行う方法が複数ある場合、当然の疑問は、「どちらが優れているか?」というものです。
一般的に言えば、+ 演算子は、いくつかの理由でconcat () メソッドよりも汎用性があります。
- concat メソッドでは一度に 2 つしか連結できないのに対し、オブジェクトを無制限に連結できます。
- 変数またはオブジェクトが文字列でない場合にtoString ()メソッドを自動的に呼び出すことで、異なるクラスのオブジェクトを 1 つの文字列に結合できます。対照的に、 concat はStringであるオブジェクトでのみ呼び出すことができ、別のStringのみをパラメーターとして取ります。
これら 2 つの理由から、+ 演算子はconcatメソッドよりもはるかに頻繁に使用されます。ただし、concatメソッドが役立つ場合があります。+ 演算子とは異なり、concatメソッドは引数を文字列に変換しません。このため、存在しないオブジェクトを連結しようとすると、アプリケーションはエラー ( NullPointerException ) をスローし、代わりに + 演算子を使用した場合のように、見過ごされることはありません。