Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 我应该如何编写MU难题的规则3?_Java_Eclipse_String_Split - Fatal编程技术网

Java 我应该如何编写MU难题的规则3?

Java 我应该如何编写MU难题的规则3?,java,eclipse,string,split,Java,Eclipse,String,Split,我在看戈德尔·埃舍尔·巴赫的MU拼图,我正在尝试实现一套规则 规则是 规则1:如果字符串以I结尾,可以在末尾添加U:xi→ x IU 规则2:如果字符串以M开头,那么可以将M:mx后面的数字加倍→ M x x 规则3:如果字符串中有III,可以用U:x III y替换它→ xuy 规则4:如果字符串中有UU,则可以将其全部删除:x UU y→ xy 我已经从所有这些规则中得到了结果,但是我不相信我的规则3的代码有效 我的字符串输入是“MIIII” 我得到输出:[MIIIIU,MIIIIIIII,

我在看戈德尔·埃舍尔·巴赫的MU拼图,我正在尝试实现一套规则

规则是

规则1:如果字符串以I结尾,可以在末尾添加U:xi→ x IU

规则2:如果字符串以M开头,那么可以将M:mx后面的数字加倍→ M x x

规则3:如果字符串中有III,可以用U:x III y替换它→ xuy

规则4:如果字符串中有UU,则可以将其全部删除:x UU y→ xy

我已经从所有这些规则中得到了结果,但是我不相信我的规则3的代码有效

我的字符串输入是“MIIII”

我得到输出:[MIIIIU,MIIIIIIII,MUI,MIU]

这就是我想要的输出

然而,我相信我的编码方式并不能正确地替换U

我想如果我的输入是“MIIIIII”,我相信我应该得到结果,如果我错了,请纠正我

但是我的代码返回MU,因为我使用split并在字符串中添加一个U,但是当我认为它应该返回两个U时,这会用一个U替换所有6个I

这条规则的代码是

if(s.contains ("III")){

        String parts[] = s.split("III");// split at III and handle empty string

        String x = parts[0]; // Prefix;
        String y = parts[1]; //suffix

        list.add(x+"U"+y);
        list.add(x+y+"U");
    }
}
任何关于如何更好地解决这个问题的建议都将不胜感激


谢谢

“MIIIIII”。拆分(“III”)
返回
[“M”]
(已测试)。使用
s.replaceAll(“III”,“U”)
。哦,顺便说一句,为什么你的名字是“user259571”?如果我使用s.replaceAll(“III”,“U”),那么我会得到MUI,这是我想要的结果之一,但它通过替换前3个i得到MUI,所以MIIII变成MUI。我还希望能够跳过第一个I并替换最后3个,从而产生MIU如果这有意义,我一定没有设置一个我想我只是用电子邮件帐户登录了,这是一段时间前我做的,可能用户名是自动的还是什么?
“miiiii”。拆分(“III”)
返回
[“M”]
(已测试)。使用
s.replaceAll(“III”,“U”)
。哦,顺便说一句,为什么你的名字是“user259571”?如果我用s.replaceAll(“III”,“U”)“然后我会得到MUI,这是我想要的结果之一,但它通过替换前3个I得到MUI,所以MIIII变成了MUI。我还希望能够跳过第一个I,替换最后3个导致MIU,如果这有意义的话,我一定没有设置一个,我想我只是用电子邮件帐户登录了。这是一段时间前我做的,可能是美国ername是自动化的还是什么?