一个简单的Java程序,用于连接两个重叠的字符串
我正在从事这个大学项目,该项目开发了一种使用遗传算法和蜂群优化的混合算法。我被一个小问题难住了 让我们假设有两个字符串:一个简单的Java程序,用于连接两个重叠的字符串,java,Java,我正在从事这个大学项目,该项目开发了一种使用遗传算法和蜂群优化的混合算法。我被一个小问题难住了 让我们假设有两个字符串: String x="001100110011"; String y="001101110110"; 我需要形成一个新的字符串,通过叠加x和y来组合它们 String out="001101110111"; 我尝试使用在StackOverflow上找到的算法,但没有得到想要的结果 public String docat(String f, String s) {
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);
}
我的目标是继续连接字符串,直到达到111111。长度固定在12
public String doIt(String x, String y)
{
return Integer.toBinaryString(Integer.parseInt(x, 2) | Integer.parseInt(y, 2));
}
这适用于您的目标,主要与您的代码有关
(编辑:您可能需要格式化字符串,以确保所有12位数字都在那里)如果您的长度固定为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;
}
字符串orStr(字符串s1,字符串s1)
{
字符串结果=”;
对于(int i=0;iWhy您使用字符串来表示12位?使用位集,它更符合逻辑、更高效,并且具有您需要的方法(或()
)。您也可以使用诸如short
或int
之类的原语,并使用按位操作|
我必须尽可能简单地使用我们已经学习过的内容。谢谢您:)我可以使用OR运算符。你还没有被教过如何使用任务的最佳类型并阅读API文档吗?我确实了解它,现在正在阅读有关位集类的内容。从现在起,我肯定会根据需要使用它。请至少使用StringBuilder。这是很多不必要的括号。当然,如果else没有从多余的括号你还没有提到他的问题的标题中提到了连接和(正确或错误),你的代码不会这样做。@barlop很多人主张总是使用大括号,不是为了清晰,而是为了维护性:一个想在else块中添加一行的新手可能会忘记添加大括号,而如果已经有了大括号,他所要做的就是添加他的行。我个人不同意这个想法,但我认为我们不同意我会注意额外的大括号,这是一个有点扭曲的问题,只有当你因为某种原因被绳子缠住的时候,这才是可行的。@AlexErohin我在这里假设,正如他上面提到的,他必须坚持他所知道的。你能详细说明一下“有点扭曲”吗?你做了什么?