我们希望为用户提供过滤亵渎性语言的选项。假设我们认为猫,狗和美洲驼这两个词是亵渎的。编写一个从键盘读取字符串的程序,并测试字符串是否包含我们的一个亵渎性词语。你的程序应该找到像cAt这样的单词,仅在大小写上有所不同。
尝试:
import java.util.Scanner;
public class Assign5 {
public static void main(String[] args) {
String cat,dog,llama,x;
System.out.println("Enter a word");
Scanner keyboard = new Scanner (System.in);
x = keyboard.next();
x.equalsIgnoreCase(x);
if(x.indexOf("cat")!=-1&&x.indexOf("dog")!=-1&&x.indexOf("llama")!=-1);
{
System.out.println("Profanity Detected");
}
else
{
System.out.println("No Profanity Detected");
}
}
由于某种原因,它强调else
所以我无法运行它。我做错了什么?
我不允许使用:for,while和数组。我们还没有得到那些。我只允许使用:boolean,switch和if-else。另外,我使用x.equalsIgnoreCase(x)
来放弃案例识别。它会起作用吗?
答案 0 :(得分:1)
在if
表达后丢失分号。
答案 1 :(得分:1)
x.equalsIgnoreCase(x);
什么也没做。
将字符串转换为小写。
请改用x = x.toLowerCase();
。
答案 2 :(得分:1)
一些事情:
x.equalsIgnoreCase(x)
做什么?这将永远返回true(是的,x等于它自己),并且由于你不在任何地方使用它,你的调用完全没用。indexOf()
搜索文本,但需要它不区分大小写,那么您可以考虑先将字符串转换为全大写或全部小写。P.S。您可能会发现阅读String类的Java文档非常有用。如果您使用的是谷歌浏览器,您可能还会发现Java API Search扩展名有助于查找相关文档。否则,您一定要结帐并为Java 6 API documentation添加书签。
答案 3 :(得分:1)
问题在于:
if (x.indexOf("cat") != -1
&& x.indexOf("dog") != -1
&& x.indexOf("llama") != -1); // <-- look there
{
System.out.println("Profanity Detected");
}
您是否注意到“if”结尾处的某些内容?
提示“{block}”不属于if!这就是导致“其他”强调的原因。 也许还有其他错误,但这是一个语法错误。
我将这样的代码格式化,这样我就可以轻松发现这些错误。采用良好的代码格式是一项非常高效的任务:)
if (expr) {
...
} else {
...
}
答案 4 :(得分:0)
如果检测到所有亵渎罪,您将返回检测:如果cat&amp;&amp;骆驼&amp;&amp;狗被发现了。
要解决此问题,请使用|| (或):返回cat ||的检测美洲驼||狗被发现了。
答案 5 :(得分:0)
这比你想象的要简单。使用.equals方法。