我想知道是否可以在java中混合使用两个字符串。 假设我有
11111
和
22222
将它们组合形成的最佳方法是什么?
1212121212
答案 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();
}