http://i.imgur.com/oPbHR6p.png
import java.util.Scanner;
class apples{
public static void main(String args[]){
Scanner eWord = new Scanner(System.in);
String English;
String Translated;
String one = "an";
String two = "au";
String three = "annnnnn";
String four = "ow";
String five = "o";
String six = "annnnnn";
String seven = "annnnnn";
String eight = "annnnnn";
String nine = "annnnnn";
String ten = "u";
System.out.println("Welcome to the Swedish Chef Translator 3000");
System.out.println("Type a word to translate");
while(true){
English = eWord.nextLine();
if(English.contains("an")){
Translated = English.replace(one, "un");
System.out.println(Translated);
}
if(English.contains("au")){
Translated = English.replace(two, "oo");
System.out.println(Translated);
}
if(English.contains("annnnnn")){
Translated = English.replace(three, "unnnnnn");
System.out.println(Translated);
}
if(English.contains("ow")){
Translated = English.replace(four, "oo");
System.out.println(Translated);
}
if(English.contains("o")){
Translated = English.replace(five, "u");
System.out.println(Translated);
}
if(English.contains("o")){
Translated = English.replace(six, "u");
System.out.println(Translated);
}
if(English.contains("o")){
Translated = English.replace(seven, "u");
System.out.println(Translated);
}
if(English.contains("o")){
Translated = English.replace(eight, "u");
System.out.println(Translated);
}
if(English.contains("o")){
Translated = English.replace(nine, "u");
System.out.println(Translated);
}
if(English.contains("u")){
Translated = English.replace(ten, "oo");
System.out.println(Translated);
}
}
}
}
我还没有编号3,6,7,8或9。我在代码中写了它,但我还没有达到它,因为它更复杂。 我的问题是:当我输入单词AUTHOR时,它会输出: oothor 由Authur 作者 作者 作者 作者 aoothor
如果这些结果是正确的,那么无。假设输出OOTHUR。它会输出多个结果。我该如何工作?我不明白。我已经尝试过添加休息;每个if语句,但不起作用。我也试过放置replaceAll而不是替换。
答案 0 :(得分:1)
您不能一次执行一次替换,因为这不起作用。
示例:规则5(O
→U
)和10(U
→OO
)冲突。
如果您在规则10之前执行规则5,则会获得TUMOR
→TUMUR
→TOOMOOR
。
如果您在规则5之前执行规则10,则会获得TUMOR
→TOOMOR
→TUUMUR
。
正确答案是TUMOR
→TOOMUR
。
您必须从左到右遍历列表,并对每个位置执行10条规则,将规则1,2,4和7的位置提前2,并保持特殊跟踪您是否已经执行了规则6。
关于规则7,8和9的解释,我将它们读作“替换......的出现”,以便EEL
→IEL
(规则9)。将它们实现为“替换重复出现的...”,使EEL
→IIL
更复杂。编码器的选择,我想。
现在,尝试一些长话:; - )
UNCHARACTERISTICALLY → OONCHERECTEREESTICELLY
UNITED ARAB EMIRATES → OONEETED EREB IMEERETES