需要根据名词的最后一个字母输出前缀

时间:2014-03-27 07:30:12

标签: java

我正在进行一项在线Udacity课程的作业,我们被要求开发一种识别名词最后一个字母的方法,然后根据字母,输出一个“La”,“el”,要么 ”?” +名词。

完整的说明是您要在SpanishWord类中完成方法fixNoun,以便它返回前面带有的名词:

// "la " if the noun ends in "a",
// "el " if it ends in "o"
// "? " if it ends in some other letter.

我似乎在编译时不断遇到所有失败。有人可以帮我理解我做错了吗?

public String fixNoun(String noun) {
    String determinenet= noun.substring(noun.length() - 1);      

    if(determinenet.equals("a")) {
       System.out.println("la" + " "+noun );
    }
    else if ( determinenet.equals("o")) {
       System.out.println( "el"+ " "+noun);
    }
    else {
        System.out.println("?"+ " "+noun);
    }

    return noun;
}

2 个答案:

答案 0 :(得分:1)


你不会归还改名名词而是旧名词。在您的代码中,您必须更改

System.out.println("la" + " "+noun );


return("la " + noun);

等等。

固定代码如下所示:

public String fixNoun(String noun) { 
    String determinenet= noun.substring(noun.length() - 1);

       if(determinenet.equals("a")) {
          return("la" + " "+noun );
       }
       else if ( determinenet.equals("o")) {
          return( "el"+ " "+noun);
       }
       else {
           return("?"+ " "+noun);
       }
    } 
}

P.S。:String类有一个方法endsWith(),它为您提供字符串的最后一个字符。

所以你也可以编写这样的代码:

public String fixNoun(String noun) {
    if(noun.endsWith("a")) {
        return("la " + noun);
    else if(noun.endsWith("o")) {
        return("el " + noun);
    else {
        return("? " + noun);
    }
}

祝你好运:)

答案 1 :(得分:0)

我不知道也许我错了。怎么样?

String de=noun.charAt(noun.length()-1)
if(de.equalsIgnoreCase("a"))
    return "la" + " "+noun ;