简单的Java程序,用于重叠两个字符串

时间:2016-05-01 08:27:06

标签: java

我正在研究这个使用Genetic Algo和Bee Colony Optimization开发混合算法的大学项目。我遇到了一个小问题。

我们假设我们有两个字符串:

String x="001100110011";

String y="001101110110";

我需要形成一个新的字符串,它通过叠加它们来结合x和y。

String out="001101110111";

我尝试使用我在StackOverflow上找到的算法,但无法获得所需的结果。

public String docat(String f, String s) {
        if (!f.contains(s.substring(0,1)))
            return f + s;
        int idx = s.length();
        try {
            while (!f.endsWith(s.substring(0, idx--))) ;
        } catch (Exception e) { }
        return f + s.substring(idx + 1);
    }

我的目标是继续连接字符串,直到达到111111111111.长度固定为12。

2 个答案:

答案 0 :(得分:1)

public String doIt(String x, String y)
{
    return Integer.toBinaryString(Integer.parseInt(x, 2) | Integer.parseInt(y, 2));

}

这适用于您的目标,主要与您的代码相关。

(编辑:您可能需要格式化字符串以确保所有12位数字都存在)

答案 1 :(得分:-1)

如果你的长度固定在12,你需要做的就是两个字符串 然后去吧:

String orStr (String s1, String s1)
{
    String result = "";
    for (int i=0; i<12; ++i)
    {
       if (s1.charAt(i)=='1' || s2.charAt(i)=='1')
       {
           result += "1";
        } else {
           result +="0";
        }
     }
     return result;
}

但是为什么要在字符串中保留位?