我正在研究这个使用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。
答案 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;
}
但是为什么要在字符串中保留位?