正在与Java比较最后2/3/4个字符(repl.it 018-条件语句练习4)

正在与Java比较最后2/3/4个字符(repl.it 018-条件语句练习4),java,if-statement,compare,conditional,equals,Java,If Statement,Compare,Conditional,Equals,亲爱的Stackoverflow社区,我正在为repl.it(018)条件语句4上的一个任务而挣扎 所以他们希望我这样做: 老师的指示: 你要做的是: 给定一个字符串变量“word”,执行以下测试 如果单词以“y”结尾,则打印“-ies” 如果单词以“ey”结尾,则打印“-ey” 如果单词以“ife”结尾,请打印“-ives” 如果以上均不正确,请打印“-s” 最多只能打印一个 我的代码如下所示: import java.util.Scanner; class Main { public

亲爱的Stackoverflow社区,我正在为repl.it(018)条件语句4上的一个任务而挣扎

所以他们希望我这样做:

老师的指示: 你要做的是:

给定一个字符串变量“word”,执行以下测试

如果单词以“y”结尾,则打印“-ies” 如果单词以“ey”结尾,则打印“-ey” 如果单词以“ife”结尾,请打印“-ives” 如果以上均不正确,请打印“-s” 最多只能打印一个

我的代码如下所示:

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner inp = new Scanner(System.in);
    System.out.print("In:");
    String word = inp.nextLine();
    //DO NOT CHANGE ABOVE CODE!  Write your code below

    if(word.endsWith("y"){
      System.out.println("-ies");
    }
    else if(word.endsWith("ey")){
      System.out.println("-eys");
    }
    else if(word.endsWith("ife")){
      System.out.println("-ives");
    }
    else{

      System.out.println("-s");
    }
  }
}
例如,当我运行它时,我的输入是:嘿

当然,我的代码将遍历代码,看看第一个语句是否正确,是的,它是相等的,因为最后的y=y,这是错误的

我的问题是如何让我的代码比较最后2或3个字符,以便在输入Hey时打印出正确的值

如果我输入Hey,它应该打印出来:

-爱与不爱


Ty

将条件重新排序如下:

if(word.endsWith("ey")){
   System.out.println("-eys");
}
else if(word.endsWith("ife")){
   System.out.println("-ives");
}
else if(word.endsWith("y")){
   System.out.println("-ies");
}
else{    
   System.out.println("-s");
}
这意味着我们提升最具体的条件,并将不太具体的条件放在下面

我已经把
else if(word.endsWith(“y”)
作为
else if
s的最后一个,但是在
else if(word.endsWith(“y”)
链接中的什么位置并不重要,只要它在条件
if(word.endsWith(“y”)
之前就可以了。

因为以“y”结尾是以“y”结尾的子集,您的第二个
if
将永远不会为真

将测试顺序更改为最具体的第一步:

if(word.endsWith("ey"){
  System.out.println("-eys");
}
else if(word.endsWith("y")){
  System.out.println("-ies");
}
else if(word.endsWith("ife")){
  System.out.println("-ives");
}

作业的规范为解释留下了一些空间,但基本上你只需要重新安排
if
子句就可以得到你想要的结果。