将英语转换为Ubbi Dubbi

时间:2013-11-24 07:11:58

标签: java eclipse

嘿伙计们,我必须制作一个将UbbiDubbi转换成英语的应用程序。我将首先解释UbbiDubbi,这不是UbbiDubbi工作的正常方式,而是我们只在元音或元音簇前添加ub(群集不超过2个元音在一起)。我几乎把它粘在两个部分上,它将添加第一个元音,但不会在字符串/单词中添加任何其他元音。两个一遍又一遍地运行程序。

 public static String translateFromEnglish(String phrase) {
        Scanner scan = new Scanner(System.in);
        System.out.println("type in a phrase you would like to convert to Ubbi Dubbi");
         phrase = scan.nextLine();
        String Emptystring = "";
        for (int i = 0; i < phrase.length(); i++) {
        if (phrase.charAt(i) == 'a' || phrase.charAt(i) == 'e' || phrase.charAt(i) == 'i' || phrase.charAt(i) == 'o' || phrase.charAt(i) == 'u') {
            Emptystring += "ub";
            Emptystring += phrase.charAt(i);
            // +ub 
            // +a
            if (phrase.charAt(i+1) == 'a'){
                Emptystring += phrase.charAt(i+1);
                // +a
                // i +1
                } else {
                    if (phrase.charAt(i+1) == 'e') {
                        Emptystring += phrase.charAt(i+1);
                    }
                }
                        if (phrase.charAt(i+1) == 'i'){
                            Emptystring += phrase.charAt(i+1);
                    }else {
                        if (phrase.charAt(i+1) == 'o'){
                            Emptystring += phrase.charAt(i+1);
                            }
                    }
                        if (phrase.charAt(i+1) == 'u') {
                            Emptystring += phrase.charAt(i+1);
                            } 


        }
                        else {
                            Emptystring += phrase.charAt(i);

                        }

        // here i am check to see if the String contains any vowels or vowel
        // clusters

        // here i printed out the new word



        }
        System.out.println(Emptystring);    


        return phrase;  
    }

控制台 输入您要转换为Ubbi Dubbi的短语 你好 你的新短语是地狱 错误

1 个答案:

答案 0 :(得分:0)

由于所有这些if / else检查,您的代码很难遵循。 但是当你写出if (phrase.charAt(i+1) ==...这样的东西时,你只检查下一个字母而不是所有的“元音簇”(这可能导致不必要的“ub”)。当i将是最后一次迭代时i+1将不是字符串中的索引。

import java.util.Scanner;

public class Test {

    static boolean isVowel(char v) {
         if (v == 'a' || v == 'e' || v == 'i' || v == 'o' || v == 'u') {
             return true;
         }
         return false;
    }
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("type in a phrase you would like to convert to Ubbi Dubbi");

        String phrase = scan.nextLine();
        StringBuilder result = new StringBuilder();
        boolean prevVowel = false; //is our vowel part of a cluster?

        for (int i = 0; i < phrase.length(); i++) {
        if (isVowel(phrase.charAt(i))) {
            if(prevVowel==false)
                result.append("ub");

            prevVowel=true;
        }
        else
            prevVowel=false;
        result.append(phrase.charAt(i)); //should be added anyway

        }
        System.out.println(result);    

    }
}