0

I am working on a java problem at the moment where I am creating a program that simulates the old TV quiz show, You Bet Your Life. The game show host, Groucho Marx, chooses a secret word, then chats with the contestants for a while. If either contestant uses the secret word in a sentence, he or she wins $100.00.

My program is meant to check for this secret word.

Here is my code so far:

import java.util.Scanner; 

public class Groucho {
  String secret; 

  Groucho(String secret) {
     this.secret = secret; 
  }

  public String saysSecret(String line) {
     if(secret.equals(line)){
         return ("true");
     } else {
         return ("false");
     }
  }

  public static void main(String[] args){
     Scanner in = new Scanner(System.in); 
  }

}

In the main method I need to now create a new Groucho object with a secret word from the first line of standard input (in.nextLine()).

I am not sure how I go about doing this? Can someone explain please! Thanks! Miles

Paul Vargas
  • 38,878
  • 15
  • 91
  • 139
Miles Roberts
  • 395
  • 4
  • 6

6 Answers6

2

Have a look at the Scanner API, and perhaps the Java Tutorial on Objects. And that on Strings.

Learning the basics is usually more useful than just getting a line of code from somewhere.

No offence :).

s.d
  • 3,649
  • 4
  • 30
  • 62
1

You can read the line with the following statement:

String line = in.nextLine();

Then, if you'd like to have the first word (for example), you can split the line and create a new Groucho object.

String split = line.split(" ");
Groucho g = new Groucho(split[0]);

Here you can find more information about :

Konstantin Yovkov
  • 59,030
  • 8
  • 92
  • 140
0

You would create a new Groucho object and pass in in.nextLine() as a parameter. This would be done by Groucho g = new Groucho( in.nextLine() );

Sman25
  • 1,115
  • 10
  • 16
0

You will need something that looks like this:

Scanner in = new Scanner(System.in); //take in word

String secretWord = in.nextLine(); //put it in a string

Groucho host = new Groucho (secretWord); //create a Groucho object and pass it the word

0

in.nextLine() will take a single line of the whole input, so you can simply pass it into the constructor.

For example:

String inputWord = in.nextLine();
Groucho g = new Groucho(inputWord);
mashaned
  • 93
  • 11
0

In the Scanner class the nextLine() method takes the next line of input as a String. You can save that line of input to a String variable:

String line = in.nextLine();

Now that you have a full line of input, you can get the first word from it.

In a sentence each word is separated from other words by a space. In the String class the split() method can split a String into an array of smaller strings, such as words in a sentence, with a given separator, such as a space (" "), that you specify as a parameter:

String[] words = line.split(" ");

Next you can choose a secret word from the array by selecting the appropriate index.

For the first word:

String chosenWord = words[1];

For the last word:

String chosenWord = words[words.length - 1];

For a random word:

String chosenWord = words[Math.floor(Math.random() * words.length)];

Now you can simply pass on the secret word as a parameter to a new Groucho constructor:

Groucho secretWord = new Groucho(chosenWord); 

This step by step explanation created a new variable at each step. You can accomplish the same task by combining multiple lines of code into a single statement and avoid creating unnecessary variables.

Shruti
  • 61
  • 3