如何实现两个字符串的交叉合并功能java实现

如何实现两个字符串的交叉合并功能java实现

  针对于如何实现两个字符串的交叉合并功能如ABCDE,abc实现后的结果为AaBbCcDE这种效果,其他不多说看下面的代码吧

package cn.itcast.core.test;  

import com.alibaba.druid.sql.visitor.functions.Char;  

/**  
 * 实现两个字符串交叉功能  
 *   
 * @author qdh  
 *  
 */  
public class CharToChar {  
    public static void main(String[] args) {  
        String a = "ABCDE";  
        String b = "abcde";  
        System.out.println(toChar(a, b));  
        System.out.println("第二种:" + merge(a, b));  
    }  

    public static String toChar(String a, String b) {  
        // 将字符串转换为字符数组  
        char[] aArray = a.toCharArray();  
        char[] bArray = b.toCharArray();  

        // 定义一个字符缓冲流  
        StringBuffer stringBuffer = new StringBuffer();  

        // 循环字符数组将两个字符数组中的元素进行交换位置  
        for (int i = 0; i < aArray.length; i++) {  
            // 将第一个字符数组添加的字符缓冲区  
            stringBuffer.append(aArray[i]);  
            // 如果i<bArray.length将bArray添加到字符串缓冲区  
            if (i < bArray.length) {  
                stringBuffer.append(bArray[i]);  
            }  
        }  
        // 返回交叉后的结果  
        return stringBuffer.toString();  
    }  

    public static String merge(String a, String b) {  
        // 将接收的字符串转换为字符数组  
        char[] aChar = a.toCharArray();  
        char[] bChar = b.toCharArray();  

        //定义一个长度  
        int mClength = aChar.length * 2;  
        //定义一个字符数组并给一个长度  
        char[] mixChar = new char[mClength];  
        for (int i = 0; i < aChar.length; i++) {  
            //将字符数组aChar中的元素赋予给新的字符数组  
            mixChar[i * 2] = aChar[i];  
            //将字符数组bChar中的元素赋予给新的字符数组中的第二个位置  
            mixChar[i * 2 + 1] = bChar[i];  
        }  
        return String.valueOf(mixChar);  

    }  
}  

python版:

def charTochar(s1,s2):
    L1=list(s1)
    L2=list(s2)
    L3=[]
    for i in range(len(L1)):
        L3.append(L1[i])
        if i<len(L2):
            L3.append(L2[i])
    return "".join(L3)
a=raw_input("请输入字符串a:")
b=raw_input("请输入字符串b:")
print charTochar(a, b)

上面方法有bug,可以使用如下方法

import java.util.ArrayList;
import java.util.List;

//交叉合并字符串代码
public class CharToChar2 {
    public static void main(String[] args) {
              String a[] ={"a","b","c","d","e","f","g"};
              String b[] ={"1","2","3","4","5"};
              CombineTwoArray(a, b);
              System.out.println(CombineTwoArray(a, b));
         }

         public static List<String> CombineTwoArray(String[] first, String[] second) {
             List<String> outlist = new ArrayList<String>();
             int index = 0;
             while (index < first.length && index < second.length) {
                 outlist.add(first[index]);
                 outlist.add(second[index]);
                 ++index;
             }
             if (index >= first.length) {
                 for (int i = index; i < second.length; i++) {
                     outlist.add(second[i]);
                 }
             } else {
                 for (int i = index; i < first.length; i++) {
                     outlist.add(first[i]);
                 }
             }
             return outlist;
         }
}

python版

def charTochar(s1,s2):
    L1=list(s1)
    L2=list(s2)
    L3=[]
    index=0
    while (index < len(s1) and index < len(s2)):
        L3.append(s1[index]);
        L3.append(s2[index]);
        index +=1
    if index >=len(s1):
        for i in range(index,len(s2)):
            L3.append(s2[i])
    else:
        for i in range(index,len(s1)):
            L3.append(s1[i])
    return "".join(L3)
a=raw_input("请输入字符串a:")
b=raw_input("请输入字符串b:")
print charTochar(a, b)  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值