Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: Gam on 04-01-2009, 15:44:14



Title: Ordinamento di stringhe
Post by: Gam on 04-01-2009, 15:44:14
Ciao ragazzi, mi potreste consigliare un metodo che mi consenta, dato un array di stringhe non ordinato, di ordinarlo alfabeticamente?. Il dubbio maggiore sta nel fatto che se ci sono due stringhe tipo:

   ..."bastone","bagaglio"...           l'output alla fine dovrebbe essere un array ordinato del tipo:

   ..."bagaglio","bastone"...

 in quanto la lettera "g" della seconda stringa, alfabeticamente è minore della lettera "s" della prima stringa.
Che qualcuno mi aiuti :-OK


Title: Re:Ordinamento di stringhe
Post by: MisteroLupo on 04-01-2009, 16:36:11
La classe String contiene il metodo compareTo che confronta due stringhe lessicograficamente.
Ecco la documentazione (http://java.sun.com/javase/6/docs/api/java/lang/String.html#compareTo(java.lang.String)),  .wink


Title: Re:Ordinamento di stringhe
Post by: Gam on 05-01-2009, 15:45:09
Grazie per l'aiuto
Ma un modo per costruire un metodo simile al "compareTo" esiste?
Cioè voglio dire, il prof. permette l'uso di questi metodi nella prova che faremo, nel caso avessimo la necessità di usarli?


Title: Re:Ordinamento di stringhe
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 05-01-2009, 16:29:30
Grazie per l'aiuto
Ma un modo per costruire un metodo simile al "compareTo" esiste?
Cioè voglio dire, il prof. permette l'uso di questi metodi nella prova che faremo, nel caso avessimo la necessità di usarli?
Il metodo compareTo viene calcolato da un codice equivalente al seguente, secondo la specifica propria di java.lang.String.compareTo (String): (http://java.sun.com/javase/6/docs/api/java/lang/String.html#compareTo(java.lang.String))
Code:
private static int my_compareTo (String s1, String s2)
{
    int i = 0, l1 = s1.length (), l2 = s2.length ();
    int minLength = Math.min (l1, l2);
   
    //scorre fino a quando trova un carattere diverso
    //oppure una delle stringhe è stata scansita interamente
    while (i < minLength && s1.charAt (i) == s2.charAt (i))
        i++;
   
    //se ci siamo fermati quando ancora scansivamo entrambe le stringhe
    if (i < minLength)
        //vuol dire che c'è un primo simbolo diverso, ne restituiamo la differenza (con segno)
        return s1.charAt (i) - s2.charAt (i);
    else
        //altrimenti restituiamo al differenza (con segno) tra le lunghezze delle stringhe
        return s1.length () - s2.length ();
}
ove s1 sarebbe la Stringa su cui viene richiamato il metodo compareTo, ovvero le seguenti due istruzioni restituiscono lo stesso valore:
Code:
s1.compareTo (s2)
my_compareTo (s1, s2)
.ciaociao


Title: Re:Ordinamento di stringhe
Post by: Alex_47 on 07-01-2009, 22:06:20
ma nella prova itinere di giorno 9 ci saranno esercizi sull'ordinamento di stringhe?


Title: Re:Ordinamento di stringhe
Post by: k1r4 on 07-01-2009, 23:09:37
non ci saranno esercizi sull'ordinamento, ma solo esercizi sulla ricerca (sequenziale) così almeno ha detto il professore oggi in classe  :-K


Title: Re:Ordinamento di stringhe
Post by: TheSpecialOne on 08-01-2009, 12:26:46
non ci saranno esercizi sull'ordinamento, ma solo esercizi sulla ricerca (sequenziale) così almeno ha detto il professore oggi in classe  :-K

non immagini che bella notizia mi hai dato!
fatti sentire, statua d'oro per te!   :-OK