苦苦挣扎比较最后2/3/4个字符Java(repl.it 018 - 条件语句练习4)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了苦苦挣扎比较最后2/3/4个字符Java(repl.it 018 - 条件语句练习4)相关的知识,希望对你有一定的参考价值。
亲爱的Stackoverflow社区我在repl.it(018)条件语句4上遇到了一个任务
所以他们希望我这样做:
老师的指示:你要这样做:
给定字符串变量“word”,执行以下测试
如果单词以“y”结尾,则打印“-ies”如果单词以“ey”结尾,则打印“-eys”如果单词以“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时它会打印出正确的值。
如果我输入嘿它应该打印出来:
- 但不是
公司
由于以“ey”结尾是“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(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
链接你放在哪里,只要它在条件if(word.endsWith("ey"))
之前的事情应该没问题。
以上是关于苦苦挣扎比较最后2/3/4个字符Java(repl.it 018 - 条件语句练习4)的主要内容,如果未能解决你的问题,请参考以下文章
电商人:别再跟数据透视表苦苦挣扎,这个报表神器才是你最后出路
复杂项目导入器(列表中的列表),在第二个列表中使用滚动行为苦苦挣扎