Scanner i wczytanie pustego napisu

0

Mam napisać program, który wykorzystując stos odwraca napis, a po wczytaniu pustego napisu kończy działanie.

Jednak kiedy proszony jestem o podanie napisu, a nacisnę po prostu enter, program czeka dalej na podanie napisu. Jak zrobić by scanner po podaniu mu entera zrozumiał to jako pusty napis o długości 0?

Nie mogłem zrobić edit, bo piszę jako gość - sry

Jeśli użyłbym:
scanner.useDelimiter("/n");
Program traktowałby enter po podaniu napisu dalej jako enter, a nie zakończenie podawania napisu, co jest nieporządane, ale przy nie podaniu napisu i naciśnięciu entera, program nie traktuje tego entera w takim przypadku jako zakończenie podawania napisu.

0

A musisz użyć Scannera?

   Console con=System.console();
   String txt=con.readLine("Napisz cokolwiek a potem naciśnij ENTER (pusty napis konczy program)");
0

txt=con.readLine("Napisz cokolwiek a potem naciśnij ENTER (pusty napis konczy program)");

dostaję w tej linijce wyjątek: java.lang.NullPointerException
W tym miejscu consola mnie nie prosi nawet o wpisanie czegokolwiek.

Dla innych nie zorientowanych koduję w Javie, bo nie napisałem tego w 1 poście.

0

Pewnie uruchamiasz program w Eclipse lub NetBeans. One tworzą własną konsolę i System.console() zwraca wtedy null.
Uruchom program poza środowiskiem (to jest normalny sposób uruchamiania).

0

Nie ma sposobu, żeby jednak rozwiązać ten problem i działało w konsoli eclipsowej.

0
import java.io.IOException;

public class Main {

    void run() throws IOException {
        StringBuilder stringBuilder = new StringBuilder();
        while (true) {
            int znak = System.in.read();
            if (znak == 10 || znak == 13) {
                break;
            }
            stringBuilder.append((char) znak);
        }
        System.out.println(stringBuilder.toString().length());
        System.out.println(stringBuilder.toString());
    }

    public static void main(String[] args) throws Exception {
        new Main().run();
    }
}
0

Dziękuję, działa.

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