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