交错字符串

时间:2013-09-16 17:08:11

标签: java string

如何在java中混合使用两个字符串?

如果我有abcde123456789,获取a1b2c3d4e56789的最简单方法是什么?

这是我的代码:

public class Mix {
    public static void main(String[] args) {
        String s1="vera", s2="ronaldo"; /* input strings */

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < s1.length(); i++) {
            sb.append(s1.charAt(i));
            sb.append(s2.charAt(i));
        }

        String result = sb.toString();
        System.out.println(result);
    }
}

输出:

vreornaa

我的预期输出:

vreornaaldo

2 个答案:

答案 0 :(得分:2)

你快到了。您只需要添加另一个for循环来附加较大字符串的剩余部分。只需将第二个循环从较小的字符串长度迭代到较大的字符串长度:

for (int i = s1.length(); i < s2.length(); ++i) {
    sb.append(s2.charAt(i));
}

答案 1 :(得分:2)

要补充@Rohit,您还应检查两个字符串长度中的哪一个更长,并将其附加到结果中。

String s1 = "vera", s2 = "ronaldo";
StringBuilder sb = new StringBuilder();

int minLength = Math.min(s1.length(), s2.length());
for (int i = 0; i < minLength; i++){
    sb.append(s1.charAt(i));
    sb.append(s2.charAt(i));
}

for (int i = minLength; i < s1.length(); i++){
    sb.append(s1.charAt(i));
}

for (int i = minLength; i < s2.length(); i++){
    sb.append(s2.charAt(i));
}

System.out.println(sb.toString());