Напишите Java-программу, которая запрашивает у пользователя последовательность слов. Программа завершается, когда пользователь вводит команду «выйти» - PullRequest
0 голосов
/ 13 мая 2018

QUES Напишите Java-программу, которая запрашивает у пользователя последовательность слов.Программа завершается, когда пользователь вводит quit.Перед выходом из программы должен отображаться весь список вводимых слов.

Я пытался решить этот вопрос, но когда отображается список слов, также выводятся пробелы, оставленные для массива.Я новичок в программировании Java, поэтому, пожалуйста, помогите мне.

import java.util.Scanner;
class ques1
{
    public static void main(String[] args)
    {
        String [] str=new String[20];
        Scanner sc=new Scanner(System.in);
        System.out.println("enter series of words and to exit write quit");
        int i=0;
         while(true){
                str[i]=sc.nextLine();
                    if(str[i].equals("quit") || str[i].equals("QUIT"))
                       break;
                    else
                        i++;
        }
        System.out.println();
        System.out.println("----------------------------");
        for (int j=0;j<str.length;j++)
        {
          System.out.println(str[j]);
        }     
    }
}

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Массивам выделено фиксированное пространство (в вашем случае 20), заполненное нулем, и будет выдано ArrayIndexOutOfBounds, если пользователь введет более 20 слов.

Ожидайте, что, поскольку вы храните индекс последнего вставленного элемента массива, вы можете выполнить простой цикл от 0 до i, которые являются единственными заполненными пробелами массива:

    for (int j=0; j <= i; j++) {
      System.out.println(str[j]);
    }     
0 голосов
/ 13 мая 2018

использовать ArrayList<String> это динамический массив и больше подходит для этой функции

ArrayList<String> words = new ArrayList<>();
while(true){
  String word = sc.nextLine();
  if (!word.toLowerCase().equals("quit"))
    word.add(word);
  else
    break;
 }

for(String word : words)
  System.out.println(word);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...