我怎样才能让它发挥作用? (java作业)

时间:2015-09-13 03:10:41

标签: java if-statement

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而不是替换。

1 个答案:

答案 0 :(得分:1)

您不能一次执行一次替换,因为这不起作用。

示例:规则5(OU)和10(UOO)冲突。
如果您在规则10之前执行规则5,则会获得TUMORTUMURTOOMOOR
如果您在规则5之前执行规则10,则会获得TUMORTOOMORTUUMUR
正确答案是TUMORTOOMUR

您必须从左到右遍历列表,并对每个位置执行10条规则,将规则1,2,4和7的位置提前2,并保持特殊跟踪您是否已经执行了规则6。

关于规则7,8和9的解释,我将它们读作“替换......的出现”,以便EELIEL(规则9)。将它们实现为“替换重复出现的...”,使EELIIL更复杂。编码器的选择,我想。

现在,尝试一些长话:; - )

UNCHARACTERISTICALLY  →  OONCHERECTEREESTICELLY
UNITED ARAB EMIRATES  →  OONEETED EREB IMEERETES