Alyssa Zeick
Alyssa Zeick

Reputation: 3

Concatenate User Input JAVA

This is what I have so far. I want the program to print out the words the user inputs as a sentence. But I don't know how I get that to happen with the code I have written so far. ex: if you entered Hello World done

The program should say: "Hello World"

import java.util.Scanner;

public class Chapter3ProblemsSet {

    public static void main(String [] args) {

    String word = "";
    final String SENTINEL = "done";
    double count = 0; 

    String userInput = "";

    Scanner in = new Scanner (System.in);


    System.out.println("Please enter words: ");
    System.out.println("Enter done to finish.");
    word = in.next();

    do {
        word = in.next();
        count++;   
        System.out.print(" "+word);
    }
    while (!word.equals(SENTINEL));


    System.out.println(" "+word);

    }
}

Upvotes: 0

Views: 7099

Answers (3)

StackFlowed
StackFlowed

Reputation: 6816

What you need it to store it in a variable which is declared outside the loop.

StringBuilder sentence=new StringBuilder();
do {
    word = in.nextLine();
    count++;   
    System.out.print(" "+word);
    sentence.append(" "+word);
}
while (!word.equals(SENTINEL));

Then for printing use

System.out.println(sentence.toString());

Upvotes: 2

Chris Franklin
Chris Franklin

Reputation: 167

You will need to create an additional string to "collect" all of the words that the user enters. The problem with your original is that you replace 'word' with the word entered. This should do the trick:

import java.util.Scanner;

public class Chapter3ProblemsSet {

    public static void main(String [] args) {

    String word = "";
    String sentence = "";
    final String SENTINEL = "done";
    double count = 0; 

    String userInput = "";

    Scanner in = new Scanner (System.in);


    System.out.println("Please enter words: ");
    System.out.println("Enter done to finish.");
    word = in.next();

    do {
        word = in.next();
        count++;
        sentence += " " + word;


        System.out.print(" "+word);
    }
    while (!word.equals(SENTINEL));


    System.out.println(" "+sentence);

    }
}

Upvotes: 2

June
June

Reputation: 592

You can read it by pieces and put them together using a StringBuffer - http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html

StringBuffer sb = new StringBuffer();
do {
        sb.append( in.next() );
        count++;   
    }
    while (!word.equals(SENTINEL));

Upvotes: 1

Related Questions