亵渎过滤错误

时间:2011-02-13 05:23:57

标签: java if-statement

我们希望为用户提供过滤亵渎性语言的选项。假设我们认为猫,狗和美洲驼这两个词是亵渎的。编写一个从键盘读取字符串的程序,并测试字符串是否包含我们的一个亵渎性词语。你的程序应该找到像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)来放弃案例识别。它会起作用吗?

6 个答案:

答案 0 :(得分:1)

if表达后丢失分号。

答案 1 :(得分:1)

x.equalsIgnoreCase(x);什么也没做。

将字符串转换为小写。 请改用x = x.toLowerCase();

答案 2 :(得分:1)

一些事情:

  1. 正如EboMike指出的那样,你有一个无关的分号。
  2. 您期望x.equalsIgnoreCase(x)做什么?这将永远返回true(是的,x等于它自己),并且由于你不在任何地方使用它,你的调用完全没用。
  3. 如果您使用indexOf()搜索文本,但需要它不区分大小写,那么您可以考虑先将字符串转换为全大写或全部小写。
  4. “凯瑟琳”这样的词怎么样?你打算赶上那些吗?
  5. 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方法。