java - 脏话过滤器 - Java

标签 java if-statement

我们必须过滤掉三个单词 cat、dog 和 llama。当像 cAt 这样的情况发生变化时,程序必须过滤掉这些单词。

import java.util.Scanner;

public class Assign5 {

   public static void main(String[] args) 
   {
    String cat,dog,llama,x,y,z;
    System.out.println("Enter a word");

    Scanner keyboard = new Scanner (System.in);

    x=keyboard.next();
    y=x.toLowerCase();

    if (y.indexOf("cat")!=-1||y.indexOf("dog")!=-1|y.indexOf("llama")!=-1)
    {
       System.out.println("Profanity Detected");
    }
    else if(y.indexOf("cat")!=-1||y.indexOf("dog")!=-1|y.indexOf("llama")!=-1)
    {
       y.charAt(0);
       y.charAt(1);
       y.charAt(2);
       y.charAt(3);
         System.out.println("No Profanity Detected");
    }
  }
}

输出:

Enter a word

dogmatic

Profanity Detected

我正在尝试清除包含这三个单词的任何单词。这不是在读它。我尝试使用 charAt 分割字符,但它不起作用。它会继续读取 if 。另外我如何使其区分大小写?它确实将“cAt”检测为亵渎,但也将“cat”视为亵渎。我不能使用: array、 for 、 while 或 split 。目前,我只能使用 if-else、switch 和 charAt 来进行拆分。

@The Scrum Meister:我也发布了那个。这是一个转发,因为我在处理这件事时仍然遇到困难。

最佳答案

为了给您指明正确的方向,我将向您指出 String documentation 。即 equals 函数。在 StackOverflow 上,我们尽量不给出家庭作业的确切示例,而是引导学生朝正确的方向前进。如果您对某些东西的工作原理或类似问题有任何具体问题,我们将很乐意提供帮助。

一个建议,你不想调用y=x.toLowerCase();,因为一旦你这样做了,你就无法区分“cat”和“cAt”(因为它们现在都是“猫”)。

关于java - 脏话过滤器 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985124/

相关文章:

java - 如何在Android中进行内连接?

java - 在这种情况下对象会被收集吗?

java - 无法通过测试用例从 src/main/resources 访问文件

python - Yoda 条件为 "not x is None"

看不懂这个if语句

c++ - INT 在 FOR 循环外保持不变

java - 如何在不使用注释的情况下在 JavaEE 6 中获取容器管理的实体管理器

java - Android,如何从外部 Activity 更新ListView内容?

c# - 正则表达式 c# 不应匹配 boolean 运算符

arrays - 在 "if"语句中从数组中选择单个元素