Вот реализация, которая сохраняет остаток строк неравной длины:
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();
}