Java で文字列を効率的に追加する
-
Java で
java.lang.String
クラスのconcat()
を使用して追加文字列 -
Java で
+
演算子を使用した文字列の連結 -
java.lang.String
からのconcat()
メソッドの使用 -
Java で文字列を連結するための
StringBuffer
の使用 -
Java での文字列の連結での
StringBuilder
の使用
Java での文字列の連結について話すとき、+
演算子が最も効率的に文字列を追加することを思い浮かびます。Java はオーバーロードをサポートしていないため、文字列がそのような動作をするのは特別なことです。 +
演算子以外にも、Java で文字列を追加するために使用されるさまざまなメソッドがあります。
StringBuffer
StringBuilder
Java で java.lang.String
クラスの concat()
を使用して追加文字列
この目的のために、StringBuffer
クラスと StringBuilder
クラスの両方が使用されます。StringBuilder
は、文字列を連結するための最速の方法であるため、重要視されています。StringBuffer
は、同期されたメソッドと、それら以外の他のメソッドがこれら 2つよりも 1000 倍遅いため、2 番目に優先されます。ここでは、これら 4つの方法の例を示します。
public class Main {
public static void main(String args[]) {
// 1st method of concat
String str1 = "Most";
str1 = str1.concat(" Welcome");
str1 = str1.concat(" to University");
System.out.println(str1);
// 2nd method of concat
String str2 = "Today";
str2 = str2.concat(" is").concat(" your first").concat(" day");
System.out.println(str2);
}
}
出力:
Most Welcome to University
Today is your first day
Java で+
演算子を使用した文字列の連結
これは、Java で文字列と数値を結合する最も簡単な方法です。ユーザーが文字列連結の開始時に short
、char
、または int
などの 2つ以上のプリミティブ値を持っている場合、それらを明示的に文字列に変換する必要があります。たとえば、System.out.println(300, + 'B'+ "")
は 300B を出力せず、B の ASCII
値を取得して 300 に加算することで 366 を出力します。System.out.println('', + 300 +'B')
を使用すると、300B が出力されます。すべての+
演算子スキャンは、String()
を呼び出す前に、さまざまな StringBuilder.append()
呼び出しに連結されます。
java.lang.String
からの concat()
メソッドの使用
concat(String str)
メソッドは、いくつかの特定の文字列を文字列の最後に連結します。2つの文字列の合計の長さに等しい長さの char[]
を割り当てます。このメソッドは、String データをその文字列にコピーし、プライベート String コンストラクターから新しい String オブジェクトを作成します。このコンストラクターは、以下に示すように、入力 char[]
をコピーしません。
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the first string: ");
String str1 = sc.next();
System.out.println("Enter the second string: ");
String str2 = sc.next();
String result = str1 + str2;
System.out.println(result);
}
}
出力:
Enter the first string:
United
Enter the second string:
Kingdom
UnitedKingdom
Java で文字列を連結するための StringBuffer
の使用
これは、StringBuilder
が使用できない場合に、Java の複数の文字列、整数、およびその他の部分を連結するための最も適切な方法です。concat()
および+
演算子メソッドよりも高速に動作します。このアプローチの唯一の欠点は、StringBuffer
による追加メソッドが同期されることです。その動作方法は、StringBuilder
メソッドに似ています。また、char
、int
、short
などを連結するためのさまざまなオーバーロードされた append メソッドも提供します。
public class Main {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("My ");
sb.append("Country");
System.out.println(sb);
}
}
出力:
My Country
Java での文字列の連結での StringBuilder
の使用
これは、Java で文字列を連結するための最良の方法の 1つです。最も重要なのは、ユーザーが複数の文字列を連結している場合です。この方法は、ユーザーが複数の文字列を追加する必要がある場合に簡単かつ効率的に使用できます。ただし、この方法は、ユーザーが文字列を連結する必要がある場合には一般的に使用されません。
public class Main {
public static void main(String args[]) {
StringBuilder sb = new StringBuilder("My ");
sb.append("Country");
System.out.println(sb);
}
}
出力:
My Country