Wczytywanie wyrazów z konsoli wspak - jak zakończyć pracę we właściwy sposób?

0

Mam wczytać zdania z konsoli (mogą być w różnych wierszach, program ma działać w pętli). Załóżmy że chcę wprowadzić:

Wyszedłem na spacer.
Pada deszcz.
Ładna dziś pogoda.

Program ma działać tak długo aż nie wpiszę słowa pogoda - i wyświetlić wszystkie wyrazy wspak, liczbę słów i wierszy.

Z wyświetlaniem wspak sobie poradziłem, podobnie z liczbą wyrazów. Ale do działania w pętli i liczby wierszy nie umiem przejść. Podałem w komentarzach jak sobie wyobrażam coś takiego (wiem, że nie zadziała).

	import java.util.Scanner;
	import java.util.ArrayList;
	
public class Echo {
		  
		public static void NewTab(){
				ArrayList<String> Word = new ArrayList<String>();
				String wyraz;
				Scanner odczyt = new Scanner(System.in);
				
				wyraz = odczyt.nextLine();
				//while (odczyt.hasNextLine() && !(odczyt.equals("pogoda")) {
		        //    wyraz = odczyt.nextLine();
		        // }
				  Word.add(wyraz);
				  wyraz.split(" ");
				String[] zdanie = wyraz.split(" ");
				  odczyt.close();
				    System.out.println("Liczba wyrazów: " + zdanie.length);
				    for (int i = 0; i<zdanie.length; i++) {
					        System.out.println(zdanie[zdanie.length-1-i]);
				    }
		  }
		  
		  public static void main(String[] args){
			  NewTab();
		  }
		}

Jakie poprawki powinienem wprowadzić, żeby zadziałało jak chcę?

0

Czytaj w pętli nieskończonej

boolean done = false;
while(!done)
{
    String[] words = odczyt.nextLine().split("\\s+");
    ....
    for(String word: words)
    {
        if(word.equals("pogoda")) // a może f(word.equalsIgnoreCase("pogoda"))
        {
            done =true; 
        } 
    }
}
0

Ok, mam takie coś:

	import java.util.Scanner;
	//import java.util.ArrayList;
	
public class Echo {
		  
		public static void NewTab(){
				//ArrayList<String> Word = new ArrayList<String>();
				//String wyraz;
				Scanner odczyt = new Scanner(System.in);
				boolean done = false;
				
				while(!done)
				{
				    String[] words = odczyt.nextLine().split("\\s+");

				    System.out.println("Liczba wyrazów: " + words.length);
				    for (int i = 0; i<words.length; i++) {
				        System.out.println(words[words.length-1-i]);
			    }


				    for(String word: words)
				    {
				        if(word.equals("pogoda")) // a może f(word.equalsIgnoreCase("pogoda"))
				        {
				            done = true; 
				        } 
				    }
				}

				
				//wyraz = odczyt.nextLine();
				  //Word.add(wyraz);
				  //wyraz.split(" ");
				//String[] zdanie = wyraz.split(" ");
				  //odczyt.close();
				   // System.out.println("Liczba wyrazów: " + zdanie.length);
					 // if (!wyraz.contains("kota")) { 
					 // }
				    //for (int i = 0; i<zdanie.length; i++) {
					  //      System.out.println(zdanie[zdanie.length-1-i]);
				    //}
		  }
		
		  
		  public static void main(String[] args){
			  NewTab();
		  }
		}

Jak zrobić, żeby po wciśnięciu enter można było dalej pisać do momentu aż nie wpiszę pogoda - i żeby wtedy automatycznie przerywało i nie musiał wciskać kolejnego enter?

1 użytkowników online, w tym zalogowanych: 0, gości: 1