この記事では、Javaの文字列連結について詳しく説明します。また、Java で 2 つ以上の文字列を連結するさまざまな方法についても説明します。 Java での文字列連結のパフォーマンスも確認します。さらに、Java 文字列の連結を示す Java コード例もあります。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java の文字列連結は、2 つ以上の文字列を新しい文字列に結合するプロセスとして定義できます。以下は、Java で文字列を連結するさまざまな方法です:
これは Java 文字列を連結する最も簡単な方法です。 + 演算子を使用すると、複数の文字列を結合できます。注意すべき重要な点の 1 つは、+ 演算子を使用して連結した後に取得される文字列は、Java ヒープ内の新しいメモリの場所を指す新しい文字列になるということです。文字列オブジェクトがプールに存在する場合は、同じ文字列オブジェクトを返します。それ以外の場合は、新しいオブジェクトが作成されます。文字列の連結に + 演算子を使用する際に留意すべき最も重要な点は次のとおりです:
これは、Java 文字列を連結するより効率的な方法です。文字列の連結に文字列バッファを使用しても、結果の文字列の新しいオブジェクトは作成されません。文字列バッファーを使用すると、+ 演算子を使用する場合と比較して、メモリ領域が大幅に節約されます。文字列の連結に文字列バッファを使用する場合は、最終的に連結された文字列の文字数に等しい指定容量で文字列バッファ オブジェクトを初期化します。これにより、メモリが効率的に使用され、文字のサイズ変更にかかる時間が節約されます。文字列連結に文字列バッファーを使用する場合の唯一の欠点は、文字列バッファーはスレッドセーフであるため、同期オーバーヘッドが発生することです。
これは Java 文字列を連結する最も効率的な方法です。 String Builder を使用して文字列を連結しても、結果の文字列の新しいオブジェクトは作成されません。 String Builder を使用すると、+ 演算子を使用する場合に比べてメモリ領域が大幅に節約されます。文字列の連結に文字列ビルダーを使用する場合は、最終的に連結された文字列の文字数に等しい指定容量で文字列ビルダー オブジェクトを初期化します。これにより、メモリが効率的に使用され、文字のサイズ変更にかかる時間が節約されます。文字列ビルダーを使用すると同期オーバーヘッドが発生しないため、文字列ビルダーを使用する方が文字列バッファーを使用するよりも優れていると考えられます。
これは、上で説明した文字列バッファまたは文字列ビルダーの追加メソッドを使用して内部的に実装されます。
前に説明した 4 つの文字列の連結方法のうち、連結する文字列の数が少ない場合は + 演算子の使用が推奨されます。しかし、連結される文字列の数が増えると、+ 演算子のパフォーマンスが低下し、文字列の不変性により大量のオブジェクトが作成されます。複数の文字列を連結する場合は、文字列の可変性を提供する文字列ビルダーが推奨されます。
構文:
Java での文字列連結の基本的な構文は次のとおりです。
1. + 演算子の使用:
// method accepting strings to be concatenated public String concatString(String s1, String s2){ String s3= s1+s2; // using + operator return s3; }
2. String.concat() メソッドの使用:
public String concatString(String s1){ String s= "First"; String s2=s.concat(s1); // using concat method return s2; }
3. StringBuffer の使用:
StringBuffer sb= new StringBuffer(capacity); // create string buffer instance sb.append("first").append(" ").append("second"); // call append method specifying string to be concatenated
4. StringBuilder の使用:
StringBuilder sb= new StringBuilder(capacity); // create string builder instance sb.append("first").append(" ").append("second"); // call append method specifying string to be concatenated
以下に例を示します:
+ 演算子と concat () メソッドを使用した文字列連結の基本的な例を見てみましょう。
コード:
package com.edubca.stringconcatenation; public class StringconcatDemo{ public static void main(String args[]){ String s1= "This"; String s2= "Is"; String s3= "Edubca"; String s4="Training"; // Using + operator String concatenatedstr= s1 + " " + s2 +" " + s3 + " " + s4; System.out.println("String after concatenation is :: " + concatenatedstr); //using concat method String concatenatedstr1= s1.concat(" ").concat(s2).concat(" ").concat(s3).concat(" ").concat(s4); System.out.println("String after concatenation using concat method is :: " + concatenatedstr1); } }
出力:
この例では、Java の文字列バッファを使用して文字列連結を実現する方法を見ていきます。
コード:
package com.edubca.stringconcatenation; public class StringconcatDemo{ public static void main(String args[]){ String s1= "This"; String s2= "Is"; String s3= "Edubca"; String s4="Training"; // create StringBuffer Instance StringBuffer sb=new StringBuffer("Edubca"); //call append method for string concatenate StringBuffer concatenatedstr=sb.append(" ").append("Java").append(" ").append("Training"); System.out.println("Concatenated String using String Buffer is :: " + concatenatedstr ); } }
出力:
In this example, we will see how to string concatenation is achieved using a string builder in java.
Code:
package com.edubca.stringconcatenation; public class StringconcatDemo{ public static void main(String args[]){ String s1= "This"; String s2= "Is"; String s3= "Edubca"; String s4="Training"; // create StringBuilder Instance StringBuilder sb=new StringBuilder ("Edubca"); //call append method for string concatenate StringBuilder concatenatedstr=sb.append(" ").append("Java").append(" ").append("Training"); System.out.println("Concatenated String using String Builder is :: " + concatenatedstr ); } }
Output:
Note: It is important to note that we should prefer StringBuilder over StringBuffer as a String buffer that consumes extra time in synchronization. But in a multithreaded environment, it is advisable to go for StringBuffer.From the above discussion, we have a clear understanding of string concatenation in java, how it’s achieved, and what are different ways to concatenate java strings. Also, java code examples provide a clear understanding of concatenating strings.
以上がJava 文字列の連結の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。