Witam. Mam do napisania program, w którym użytkownik w kolejnych dialogach wpisuje jakieś słowa. Następnie one są łączone w napis wynikowy. Podanie kropki w dialogu kończy dany napis wynikowy i rozpoczyna kolejny.
Program ma zakończyć wybranie 'Cancel'.
Na konsoli wyświetlić mają się wszystkie napisy, napisy wynikowe a następnie z napisów wynikowych: najdłuższy, najkrótszy, pierwszy i ostatni w porządku leksykograficznym.
Nie można w tym zadaniu korzystać z tablic.
Proszę o pomoc, niestety nie wiem gdzie popełniam błąd.
import javax.swing.JOptionPane;
public class Zadanie3b {
public static void main(String[] args) {
String najdluzszy=null;
String najkrotszy=null;
String pierwszy=null;
String ostatni=null;
String wszystkienapisy="";
String napis1="";
String napis2="";
do{
napis1 = JOptionPane.showInputDialog(null, "Podaj dowolny napis lub kropke:");
if(napis1 == null || napis1.equals(".")){
if(najdluzszy == null || najdluzszy.length() < napis2.length()){
najdluzszy = napis2;
}
if(najkrotszy == null || najkrotszy.length() > napis2.length()){
najkrotszy = napis2;
}
if(pierwszy == null || pierwszy.compareTo(napis2) > 0){
pierwszy = napis2;
}
if(ostatni == null || ostatni.compareTo(napis2) < 0){
ostatni = napis2;
}
}
if(napis1 != null){
if(napis1.equals(".")){
napis2 = "";
wszystkienapisy+="\n";
}else{
if(napis2.length() >= 1){
napis2 += " ";
wszystkienapisy += " ";}
napis2 +=napis1;
wszystkienapisy += napis1;
}
}
}
while(napis1 != null);
System.out.println("Napisy wynikowe to:\n" + wszystkienapisy);
System.out.println("\nNajdluzszy napis: " + najdluzszy + "\nNajkrotszy napis: "+najkrotszy);
System.out.println("\nPierwszy w porzadku leksykograficznym: " + pierwszy + "\nOstatni w porzadku leksykograficznym: "+ostatni+"\n");
}
}