2012-02-28 129 views
1

我有問題,寫一些方法......所以,如果some1能幫助,我將不勝感激。謝謝。爪哇 - 寫obenglobish方法

任務: - 讀字 - 把它在 「obenglobish」 - 這意味着你必須添加 「OB」 元音前... 例如:英語將成爲 - > OBenglOBish ... 例外:雙元音行& & -e是字中的最後一個字符。

這是我寫的,對異常不管:

import acm.program.*; 

public class ObenGlobishX extends ConsoleProgram { 
    public void run() { 
     println("OBENGLOBISH"); 
     while (true) { 
      String word = readLine("Enter a word: "); 
      if (word.equals("")) break; 
      println(word + " --> " + obenglobish(word)); 
     } 
    } 

    private String obenglobish (String word) { 
     String result = ""; 
     for (int i = 0; i < word.length(); i++) { 
      char c = word.charAt(i); 
      if (isEnglishVowel(c)) result = result + "ob" + c; 
      else result += c; 
     } 
     return result; 
    } 

    private boolean isEnglishVowel(char x) { 
     if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u') return true; 
     return false; 
    } 

} 

它的工作原理是對像英語和腐(機器人)的詞,但一個字gooiest它不工作 - 二OO的需要...找出如何修改的方法來得到正確的結果......這意味着: gooiest - > gobooiest 拍案 - > obamobaze 等

THX

+6

這功課嗎? – 2012-02-28 19:13:21

+0

沒有...我學習java(初級)..這是鍛鍊書的Java的藝術與科學 - 埃裏克·羅伯茨..和我不出來... – cyb3r 2012-02-28 19:27:57

回答

3
private String obenglobish (String word) { 
    String result = ""; 
    for (int i = 0; i < word.length(); i++) { 
     char c = word.charAt(i); 
     if (isEnglishVowel(c)) { 
      if (c == 'e' && i == word.length()-1) { 
       result += c; 
      } else { 
       if(i!=0 && isEnglishVowel(word.charAt(i-1))) { 
        result += c; 
       } else { 
        result = result + "ob" + c; 
       }     
      } 
     } else { 
      result += c; 
     } 
    } 
    return result; 
} 
+0

非常感謝你! – cyb3r 2012-02-28 19:30:21