Michael
Michael

Reputation: 17

Java: taking only the first word of a user input string

Homework question that I've been having a little trouble with...

I need to have a user input string as a product category. If the user inputs more than one word, I need to take only the first word typed.

Stipulation: I cannot use 'if' statements.

Here's what I have so far, but it fails if only one word is typed.

Scanner scan = new Scanner (System.in);
System.out.println ("Enter a noun that classifies the"
                    + " type of your product:");

String noun = scan.nextLine();
int n = noun.indexOf(" ");
String inputnoun = noun.substring(0,n);

Upvotes: 1

Views: 7386

Answers (5)

chiwangc
chiwangc

Reputation: 3577

Instead of manipulating the entire input String, another way is to use the delimiter of the Scanner class:

Scanner scan = new Scanner(System.in);

// Following line is not mandatory as the default matches whitespace
scan.useDelimiter(" ");      

System.out.println("Enter a noun that classifies the"
                    + " type of your product:");

String noun = scan.next();
System.out.println(noun);

Note that we are using next() instead of nextLine() of the Scanner class.

Upvotes: 0

Titus
Titus

Reputation: 22474

You can use scan.next() to get only the first word.

Upvotes: 3

loafy
loafy

Reputation: 105

You can use String[] array = noun.split("\\s+"), to split between the spaces, and then use array[0] to return the first word.

Upvotes: 0

hhanesand
hhanesand

Reputation: 1000

The method split(String regex) in the string class will return an array of strings split on the regex string.

String test = "Foo Bar Foo Bar"
String[] array = test.split(" ");
//array is now {Foo, Bar, Foo, Bar}

From there you can figure out how to get the first word.

Next time you are stuck, the Java API pages are very helpful for finding new methods.

Upvotes: 1

Neverwork2123
Neverwork2123

Reputation: 227

Use string.split()

Scanner scan = new Scanner (System.in);
System.out.println ("Enter a noun that classifies the"
                    + " type of your product:");

String noun = scan.nextLine();
String inputnoun = noun.split(" ")[0];

Upvotes: 4

Related Questions