Che la stringa sia esattamente uguale a "-end-" o ... che la stringa contenga una sottostringa "-end-" ? (faccio sotto l'esempio con la comparazione esatta).
} while (!testo.equals("-end-"));
che vuol dire: ripeti se il testo non è "-end-"
Così come hai scritto il corpo del do-while però stamperesti anche -end- quando viene inserito. Se non lo vuoi, racchiudi il println in un if con la stessa condizione che ho indicato.


Rispondi quotando