Java 文字列の連結

王林
リリース: 2024-08-30 15:34:20
オリジナル
628 人が閲覧しました

この記事では、Javaの文字列連結について詳しく説明します。また、Java で 2 つ以上の文字列を連結するさまざまな方法についても説明します。 Java での文字列連結のパフォーマンスも確認します。さらに、Java 文字列の連結を示す Java コード例もあります。

広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

Java で文字列を連結するさまざまな方法

Java の文字列連結は、2 つ以上の文字列を新しい文字列に結合するプロセスとして定義できます。以下は、Java で文字列を連結するさまざまな方法です:

  • + 演算子の使用
  • String.concat() メソッドの使用
  • StringBuilder クラスの使用
  • StringBuffer クラスの使用

1. + 演算子

を使用する

これは Java 文字列を連結する最も簡単な方法です。 + 演算子を使用すると、複数の文字列を結合できます。注意すべき重要な点の 1 つは、+ 演算子を使用して連結した後に取得される文字列は、Java ヒープ内の新しいメモリの場所を指す新しい文字列になるということです。文字列オブジェクトがプールに存在する場合は、同じ文字列オブジェクトを返します。それ以外の場合は、新しいオブジェクトが作成されます。文字列の連結に + 演算子を使用する際に留意すべき最も重要な点は次のとおりです:

  • ループ内で文字列を連結するときは、大量のゴミが生成されるため、+ 演算子の使用は避けてください。
  • + 演算子を使用して文字列を連結した後に返されるオブジェクトへの参照を常に保存します。
  • + 演算子は、Java で整数を文字列に変換するために使用できます。

2.文字列バッファの使用

これは、Java 文字列を連結するより効率的な方法です。文字列の連結に文字列バッファを使用しても、結果の文字列の新しいオブジェクトは作成されません。文字列バッファーを使用すると、+ 演算子を使用する場合と比較して、メモリ領域が大幅に節約されます。文字列の連結に文字列バッファを使用する場合は、最終的に連結された文字列の文字数に等しい指定容量で文字列バッファ オブジェクトを初期化します。これにより、メモリが効率的に使用され、文字のサイズ変更にかかる時間が節約されます。文字列連結に文字列バッファーを使用する場合の唯一の欠点は、文字列バッファーはスレッドセーフであるため、同期オーバーヘッドが発生することです。

3.文字列ビルダーの使用

これは Java 文字列を連結する最も効率的な方法です。 String Builder を使用して文字列を連結しても、結果の文字列の新しいオブジェクトは作成されません。 String Builder を使用すると、+ 演算子を使用する場合に比べてメモリ領域が大幅に節約されます。文字列の連結に文字列ビルダーを使用する場合は、最終的に連結された文字列の文字数に等しい指定容量で文字列ビルダー オブジェクトを初期化します。これにより、メモリが効率的に使用され、文字のサイズ変更にかかる時間が節約されます。文字列ビルダーを使用すると同期オーバーヘッドが発生しないため、文字列ビルダーを使用する方が文字列バッファーを使用するよりも優れていると考えられます。

4. String.concat () の使用

これは、上で説明した文字列バッファまたは文字列ビルダーの追加メソッドを使用して内部的に実装されます。

Java を使用した文字列連結のパフォーマンス分析

前に説明した 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
ログイン後にコピー

文字列連結の例

以下に例を示します:

例 #1

+ 演算子と 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 文字列の連結

例 #2

この例では、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 );
}
}
ログイン後にコピー

出力:

Java 文字列の連結

Example #3

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:

Java 文字列の連結

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.

Conclusion

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート