Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个简单的Java程序,用于连接两个重叠的字符串_Java - Fatal编程技术网

一个简单的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我在这里假设,正如他上面提到的,他必须坚持他所知道的。你能详细说明一下“有点扭曲”吗?你做了什么?