用Java混合两个字符串

时间:2010-12-12 22:24:22

标签: java string

我想知道是否可以在java中混合使用两个字符串。 假设我有

11111

22222

将它们组合形成的最佳方法是什么?

1212121212

4 个答案:

答案 0 :(得分:4)

假设两个字符串的长度相等,您只需编写一个循环来遍历字符并执行您想要的操作:

String s1, s2; /* 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();

答案 1 :(得分:1)

是 - 迭代第一个字符串,对于其中的每个字符,将第二个字符串(如果存在)中位于相同位置的字符追加到构建器:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < str1.length(); i++) {
    sb.append(str1.charAt(i));
    if (str.length() > i) {
       sb.append(str2.charAt(i));
    }   
}
return sb.toString();

答案 2 :(得分:1)

我想知道给出的例子是否是有意的,即他们都重复了1个字符。在那种情况下,它更简单。如果他们不是,那么其他答案是好的。

答案 3 :(得分:1)

这是一个保留剩余不等长度字符串的实现:

public static String mix(String a, String b) {
    final int aLength = a.length();
    final int bLength = b.length();
    final int min = Math.min(aLength, bLength);
    final StringBuilder sb = new StringBuilder(aLength + bLength);
    for(int i = 0; i < min; i++) {
        sb.append(a.charAt(i));
        sb.append(b.charAt(i));
    }
    if (aLength > bLength) {
        sb.append(a, bLength, aLength);
    } else if (aLength < bLength) {
        sb.append(b, aLength, bLength);
    }
    return sb.toString();
}