Javaで2つの文字列を交互に結合する方法は何ですか?
2つの文字列をクロス結合するには、2つのポインタを使ってそれぞれの文字列の先頭を指し、順番に文字を新しい文字列に結合していきます。
以下は実装のサンプルコードです。
public class StringCrossJoin {
public static String crossJoin(String s1, String s2) {
StringBuilder result = new StringBuilder();
int i = 0, j = 0;
while (i < s1.length() && j < s2.length()) {
result.append(s1.charAt(i++));
result.append(s2.charAt(j++));
}
while (i < s1.length()) {
result.append(s1.charAt(i++));
}
while (j < s2.length()) {
result.append(s2.charAt(j++));
}
return result.toString();
}
public static void main(String[] args) {
String s1 = "abc";
String s2 = "12345";
String result = crossJoin(s1, s2);
System.out.println(result); // 输出:a1b2c345
}
}
まず、新しい文字列を連結するためにStringBuilderオブジェクトを作成します。そして、2つのポインタiとjを使用して、s1とs2の先頭を指し示し、ループを通じてs1とs2の文字を順番に新しい文字列に連結します。最後に、s1やs2にまだ連結されていない残りの文字があれば、それらを新しい文字列の末尾に順番に連結します。最後に、新しい文字列を返します。