Javaで文字列の先頭に別の文字列を挿入する方法を解説
Javaでは、ある文字列の先頭に別の文字列を挿入(連結)する方法がいくつかあります。この記事では、代表的な2つの方法——char配列を使う方法とStringBufferクラスを使う方法——について、サンプルコードと実行結果付きで詳しく解説します。
方法1:char配列(文字配列)を使う
char配列を利用すると、文字列の連結処理を低レベルで制御しながら行うことができます。手順は以下の通りです。
2つの文字列を用意します。ここでは、元の文字列を str1、先頭に挿入したい文字列を str2 とします。
2つの文字列の長さの合計をサイズとするchar配列を作成します。
配列の0番目から順に、str2 の各文字を格納していきます。
続いて、str2 の長さの位置から配列の末尾まで、str1 の各文字を格納します。
最後に、完成したchar配列から String オブジェクトを生成します。
サンプルコード
import java.util.Scanner;
public class StringBufferExample {
public static void main(String args[]) {
System.out.println("Enter string1: ");
Scanner sc= new Scanner(System.in);
String str1 = sc.next();
System.out.println("Enter string2: ");
String str2 = sc.next();
char charArray[] = new char[str1.length()+str2.length()];
for(int i = 0; i < str2.length(); i++) {
charArray[i]= str2.charAt(i);
}
for(int i = str2.length(); i < charArray.length; i++ ) {
charArray[i] = str1.charAt(i-str2.length());
}
String result = new String(charArray);
System.out.println(result);
}
}
実行結果
Enter string1: krishna Enter string2: kasyap kasyapkrishna
方法2:StringBufferを使う
Javaでは、文字列に対して頻繁に変更や操作を行う必要がある場合、String クラスの代わりに StringBuffer クラスを使用することが推奨されています。StringBuffer オブジェクトの内容は何度でも変更・操作でき、そのたびに大量の未使用オブジェクトが残ることもありません。
このクラスには、以下のような便利なメソッドが用意されています。
append()メソッド:引数として渡された文字列を受け取り、現在のStringBufferオブジェクトの末尾に追加します。
toString()メソッド:現在のStringBufferオブジェクトの内容を、String型の文字列として返します。
したがって、ある文字列の先頭にもう一方の文字列を追加するには、以下の手順を実行します。
2つの文字列を用意します。ここでは、元の文字列を str1、先頭に挿入したい文字列を str2 とします。
空のStringBufferオブジェクトを作成します。
まず append() メソッドで str2 を追加し、続けて str1 を追加します。
最後に、toString() メソッドを使ってStringBufferをString型に変換します。
サンプルコード
import java.util.Scanner;
public class StringBufferExample {
public static void main(String args[]) {
System.out.println("Enter string1: ");
Scanner sc= new Scanner(System.in);
String str1 = sc.next();
System.out.println("Enter string2: ");
String str2 = sc.next();
StringBuffer sb = new StringBuffer();
sb.append(str2);
sb.append(str1);
String result = sb.toString();
System.out.println(result);
}
}
実行結果
Enter string1: krishna Enter string2: kasyap kasyapkrishna
まとめ
文字列の先頭への挿入は、char配列を直接操作する方法でも、StringBufferのappend()メソッドを使う方法でも実現できます。コードの簡潔さや可読性を重視する場合はStringBufferを使うのがおすすめです。なお、マルチスレッド環境ではない場合には、より高速な StringBuilder クラスを代わりに使うこともできます。
-
JavaでJSONファイルを文字列(String)として読み込む方法
この記事では、JavaでJSONファイルをString型の変数として読み込む方法を解説します。特にAPIテストの際に、エンドポイントへJSONペイロードをPOSTしたいケースなどで非常に便利なテクニックです。 JSONペイロードをあらかじめファイルとして保存しておき、そのファイルを文字列として読み込めば、POSTリクエストのボディとしてそのまま利用できます。 JSONファイルを文字列として読み込む基本手法 まず、以下の場所にJSONファイルが配置されているものと仮定します。 src/test/resources/myFile.json { name:David, age:30, h
-
Javaで文字列を比較する方法|equals()とequalsIgnoreCase()の使い分けを徹底解説
Javaで文字列の等価性を比較する際は、Stringクラスが提供するequalsメソッドまたはequalsIgnoreCaseメソッドを使用するのが基本です。この記事では、それぞれのメソッドの使い方に加えて、==演算子で文字列を比較してはいけない理由についても詳しく解説します。 equals()メソッドで文字列を比較する 2つの文字列を比較し、大文字と小文字の違いまで厳密に判定したい場合はequals()メソッドを使用します。 次のコード例では、2つのStringインスタンスが大文字小文字を含むすべての文字において一致しているかどうかを判定しています。 public class Compare