beginnercoder010812
beginnercoder010812

Reputation: 43

Censored Words Condition

I need this program to print "Censored" if userInput contains the word "darn", else print userInput, ending with newline.

I have:

import java.util.Scanner;

public class CensoredWords {
    public static void main (String [] args) {
        String userInput = "";
        Scanner scan = new Scanner(System.in);
        userInput = scan.nextLine;

        if(){
            System.out.print("Censored");
        }    
        else{
            System.out.print(userInput);
        }

        return;
    }
}

Not sure what the condition for the if can be, I don't think there is a "contains" method in the string class.

Upvotes: 1

Views: 17438

Answers (4)

Cat
Cat

Reputation: 11

Another beginner method would be to use the indexOf function. Try this:

          if (userInput.indexOf("darn") > 0) {
             System.out.println("Censored");
          }

          else {
             System.out.println(userInput);

Upvotes: 1

TheLostMind
TheLostMind

Reputation: 36304

The best solution would be to use a regex with word boundary.

if(myString.matches(".*?\\bdarn\\b.*?"))

This prevents you from matching sdarnsas a rude word. :) demo here

Upvotes: 3

maxx777
maxx777

Reputation: 1330

Java String Class does have a contains method. It accepts a CharSequence object. Check the documentation.

Upvotes: 1

Sarthak Mittal
Sarthak Mittal

Reputation: 6104

Try this:

if(userInput.contains("darn"))
{
System.out.print("Censored");
}

Yes that's right, String class has a method called contains, which checks whether a substring is a part of the whole string or not

Upvotes: 2

Related Questions