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にまだ連結されていない残りの文字があれば、それらを新しい文字列の末尾に順番に連結します。最後に、新しい文字列を返します。

bannerAds