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

标签 java

我正在完成一项 Udacity 在线类(class)的作业,要求我们开发一种方法来识别名词的最后一个字母,然后根据该字母输出“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;
}

最佳答案


您不会返回更改后的名词,而是返回旧的名词。在您的代码中,您必须更改

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);
    }
}

祝你作业顺利:)

关于java - 需要根据名词的最后一个字母输出前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680920/

相关文章:

java - 将 actionListener 与 Button 一起使用

java - 如何在 Java 中连接字符串文字和字符串变量?

java - 覆盖哈希码最佳实践

java - Java代码的性能改进建议(if条件)

java - Jackrabbit/JCR 2.0 中的版本控制属性

java - 如何在没有 GUI 的情况下同时运行多个 bash shell?

Java Android getContentResolver().query 特定相机文件夹以获取 Android API 级别 <= 28 设备中的光标

java - android studio中集成PayU SDK的问题

java - 从 SharedPreference 添加 Cookie 到 Android 应用程序中的 Cookie 管理器

java - 如何使用 Spring 组件注册 POJO 工厂 *方法*?