2016-02-29 2 views
0

Я пытаюсь прочитать ввод пользователя, а затем объединить эти слова с пространством между ними. У меня возникли проблемы с выяснением логики внутри цикла. Я также хочу, чтобы пользователь мог сообщить моей программе, когда они закончат ввод слов. Вот что я до сих пор ... это не так много.Конкатенация с помощью цикла do while

Scanner in = new Scanner(System.in); 

    String userWords = ""; 
    int number = 0; 

    System.out.println("Enter words to build a sentence"); 
    userWords = in.nextLine(); 

    int i = 1; 
    do { 
     System.out.println(userWords); 
     i++; 
    } while (!(userWords.equals(null))); { 
     System.out.println(userWords + " "); 
    } 

ответ

0

Попробуйте с:

Scanner in = new Scanner(System.in); 
    String userWords = ""; 
    String currentWord = ""; 
    // now we print a prompt for user 
    System.out.println("Enter words to build a sentence"); 
    // here is the reading loop 
    do { 
     // now we read next line from user 
     currentWord = in.nextLine(); 
     // now we add the user input to the userWords with " " 
     userWords += currentWord +" "; 
     // we end the loop when the currentWord will be empty 
    } while (!(currentWord.trim().isEmpty())); 
    // now we print all the words 
    System.out.println(userWords); 
+0

Когда я вхожу в часть цикла, он дает ошибку и говорит, что «левая сторона должна быть разрешена переменной». – Harry

+0

Попробуйте прямо сейчас, я исправил это –

+0

, который хорошо работает спасибо – Harry

2
Scanner in = new Scanner(System.in); 

    String enteredWord = ""; 
    StringBuilder builder = new sb(); 
    System.out.println("Enter words to build a sentence"); 
    enteredWord = in.nextLine(); 
    do { 

     sb.append(enteredWord); 
     sb.append(" "); 
     enteredWord = in.nextLine(); 

    } while (!(enteredWord.equals("exit"))); 
//you may want to use a special case like %% instead because exit can be in a sentence{ 
      System.out.println(sb.toString()); 

, который должен работать по большей части я не имею где-нибудь, чтобы проверить это прямо сейчас. Каждый раз вокруг цикла добавляется слово с пробелом, следующим за ним, и запрашивается новое слово. вы можете использовать userwords += in.nextline() + " ";, но в цикле я бы всегда использовал stringbuilder для повышения эффективности.