2012-02-28 148 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