Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで文字列をStringBuilderに変換する方法をわかりやすく解説

Javaでは、Stringは不変(イミュータブル)なオブジェクトであるため、文字列を頻繁に連結・編集する場合には、可変(ミュータブル)なStringBuilderクラスを使用するのが効率的です。

StringBuilderクラスが提供するappend()メソッドは、String型の値を受け取り、現在のStringBuilderオブジェクトの末尾に追加します。これにより、文字列からStringBuilderへの変換(変換というより格納)が簡単に行えます。

文字列をStringBuilderに変換する手順

String型の値をStringBuilderオブジェクトに変換するには、以下の手順を実行します。

  • 対象となる文字列の値を用意します。
  • append()メソッドを使用して、その文字列をStringBuilderオブジェクトに追加します。

サンプルコード

次のJavaプログラムでは、複数の文字列が格納された配列を、1つのStringBuilderオブジェクトに順番に追加して変換しています。

public class StringToStringBuilder {
   public static void main(String args[]) {
      String strs[] = {"Arshad", "Althamas", "Johar", "Javed", "Raju", "Krishna" };
      StringBuilder sb = new StringBuilder();
      sb.append(strs[0]);
      sb.append(" "+strs[1]);
      sb.append(" "+strs[2]);
      sb.append(" "+strs[3]);
      sb.append(" "+strs[4]);
      sb.append(" "+strs[5]);
      System.out.println(sb.toString());
   }
}

実行結果

Arshad Althamas Johar Javed Raju Krishna

ポイント解説

このプログラムでは、まず空のStringBuilderオブジェクトを生成し、append()メソッドを使って配列内の各文字列をスペース区切りで順に追加しています。

最後にtoString()メソッドを呼び出すことで、StringBuilderオブジェクトの内容を通常のString型として取得し、コンソールに出力しています。

なお、ループ処理を使えば、より簡潔に記述することも可能です。

for (String str : strs) {
   if (sb.length() > 0) {
      sb.append(" ");
   }
   sb.append(str);
}

このように、大量の文字列連結を行う場面では、Stringの「+」演算子による連結よりもStringBuilderのappend()を使うことで、不要なオブジェクト生成を抑え、パフォーマンスを向上させることができます。

  1. JavaのStringIndexOutOfBoundsExceptionとは?発生原因と対処法をわかりやすく解説

    StringIndexOutOfBoundsExceptionとはJavaにおいて、文字列(String)は一連の文字を格納するために使用され、オブジェクトとして扱われます。文字列は、java.langパッケージに含まれるStringクラスによって表現されます。文字列の作成方法は主に2つあります。1つは他のオブジェクトと同様にnewキーワードを使用する方法、もう1つはプリミティブ型のようにリテラルを直接代入する方法です。String stringObject = new String(Hello how are you); String stringLiteral = Welcome to T

  2. JavaでStringの代わりにStringBuffer/StringBuilderを使うべき場面とは?使い分けのポイントを解説

    Javaで文字列を扱う際、String・StringBuffer・StringBuilderのどれを選ぶべきか迷ったことはありませんか?それぞれのクラスには明確な特徴があり、状況に応じた適切な使い分けがパフォーマンスとスレッドセーフ性の両面で重要になります。本記事では、3つのクラスの違いと、具体的な使い分けの基準をわかりやすく解説します。 String・StringBuffer・StringBuilderの主な違い 可変性(ミュータビリティ):Stringクラスのオブジェクトは不変(immutable)である一方、StringBufferとStringBuilderのオブジェクトは可変(mu