Dobra, to trochę pseudokodu:
int indeks = i; //Zmienna nieistotna tutaj
najmniejsza = tablica[i][wybor]; //Do najmniejszej wpisuję pierwszy rekord tablicy i z tą zmienną potem porównuję to, co ma w sobie tablica w kolejnych polach
int wynik=0; //Tutaj wpisuję wartość, którą zwraca compareTo
for(int j=i;j<ileWierszy-1;j++)
{
if(!(tablica[j+1][wybor].equals("\"\""))) wynik = tablica[j+1][wybor].compareTo(najmniejsza); //Jeśli string jest pusty, to ma go nie brać pod uwagę
System.out.println(j+". " + tablica[j+1][wybor] + " " + najmniejsza + " = " + wynik); //Pomocniczy tekst, jak to bierze pod uwagę compareTo
if(wynik < 0) //Jeśli compareTo zwróci wynik ujemny, to znaczy, że coś jest mniejsze od zmiennej Najmniejsza i ta zmienna musi przybrać nową wartość
{
najmniejsza = tablica[j+1][wybor];
System.out.println(najmniejsza);
indeks = j+1;
}
I teraz tak, to co wyrzuca mi konsola z tekstu pomocniczego System.out.println(j+". " + tablica[j+1][wybor] + " " + najmniejsza + " = " + wynik);
- "28 CZERWCA 1956 R." "AL.POWSTA�C�W WLKP." = -15
"28 CZERWCA 1956 R."
- "" "28 CZERWCA 1956 R." = -15
""
Czyli: kolejnym elementem tablicy do porównania jest "28 CZERWCA 1956 R.". I to jest porównywane ze zmienną najmniejsza, która ma w sobie wartość "AL.POWSTA�C�W WLKP.". Za znakiem = jest wynik compareTo.
Wynika z tego, że linia 90. zadziałała poprawnie, bo cyfry są mniejsze niż znaki alfanumeryczne w tablicy ascii.
Ale potem w kodzie tak jakby pomijana jest linia " if(!(tablica[j+1][wybor].equals(""""))) wynik = tablica[j+1][wybor].compareTo(najmniejsza); //Jeśli string jest pusty, to ma go nie brać pod uwagę". Porównywany jest znak pusty "" z "28 CZERWCA 1956 R.". Czego wynikiem jest, że znak pusty jest mniejszy...
@Edit:
Ok, już widzę błąd. Po zmianie wartości zmiennej najmniejsza nie zeruje wartości wyniku. Czego efektem jest, że ta linia:
if(!(tablica[j+1][wybor].equals("\"\""))) wynik = tablica[j+1][wybor].compareTo(najmniejsza);
rzeczywiście nie jest brana pod uwagę, ale w zmiennej wynik nadal siedzi wartość -15 i zmienna najmniejsza jest podmieniana w
if(wynik < 0) //Jeśli compareTo zwróci wynik ujemny, to znaczy, że coś jest mniejsze od zmiennej Najmniejsza i ta zmienna musi przybrać nową wartość
{
najmniejsza = tablica[j+1][wybor];
System.out.println(najmniejsza);
indeks = j+1;
}