作Calix实习生面试题,其中一题是这样的:输入两个字符串,交替打印;java
如:abc,def,则打印出adbecf面试
av,defg ,则打印出advefgapp
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(); }