做Calix实习生面试题,其中一题是这样的:输入两个字符串,交替打印;
如:abc,def,则打印出adbecf
av,defg ,则打印出advefg
static String mergeStrings(String a, String b) {
StringBuffer sb=new StringBuffer();
char[] aStr=a.toCharArray();
char[] bStr=b.toCharArray();
int len1=aStr.length;
int len2=bStr.length;
int index=0;
int dif=len1-len2;
int shortStr=len1;
int longStr=len2;
if(dif>0){
shortStr=len2;
longStr=len1;
}
//交替打印两字符串相同长度的部分
while(index<shortStr){
sb.append(aStr[index]);
sb.append(bStr[index]);
index++;
}
//此时短字符串意见打印完毕;打印长的字符串
for(int i=shortStr;i<longStr;i++){
if(dif<0){
sb.append(bStr[i]);
}else{
sb.append(aStr[i]);
}
}
return sb.toString();
}