Hjälp med att felsöka ett program som ska sortera fält

Här diskuteras programmering och utveckling
ater
Inlägg: 31
Blev medlem: 20 jun 2007, 09:20

Hjälp med att felsöka ett program som ska sortera fält

Inlägg av ater »

Hej

Jag har skrivit ett program för att sortera fält och det funkar klockrent för mig och det funkar hos polare till mig men min lärare säger bara att det alltid ger det först inmatade fältet när man kör programet.

Kod: Markera allt

 //Importerar bibloteket java.util som har bland annat olika sorterings funkioner.
 
 import java.util.*;
 
 public class NamnSort
 
 {
 
 
    public static void main(String[] args)
 
     {
 
    // Har lagger man in dom tre namnen i olika falt for att sortera fler namn ar det bara att lagga  till fler poster
 
    System.out.println("Skriv in tre st namn : ");
    String[] nameFalt = {Keyboard.readString(), Keyboard.readString(), Keyboard.readString()};
 
 
         // En funktion som sorterar faltet i bokstavs ordning kan aven sortera tal
 
         Arrays.sort(nameFalt, new Comparator()
 
             {
 
                 public int compare(Object o1, Object o2)
 
                 {
 
                     return (((String) o1).toLowerCase().
 
                             compareTo(((String) o2).toLowerCase()));
 
                 }
 
                });
 
       //Nar faltet ar sorterade enligt funtionen ovan sa blir det faltet som kommer forst att  vara falt "0" och det blir utskrivet nedan.
 
       System.out.println("Forst i ordningen: " + nameFalt[0]);
 
     }
 
 }        
 


Jag skulle bli jätte glad om någon kan kolla igenom om jag gjort fel och min dator bara spökar när programet sorterar fältet som det ska. Eller om någon har en förklaring till varför min lärare inte kan köra det korrekt.


Mvh /Mattias
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

SV: Hjälp med att felsöka ett program som ska sortera fält

Inlägg av gasol »

Hmmm din kod verkar fungera för mig iaf, fast du får ju varningar när du kompilerar! Utgår från att alla varningar är fel.

Med den här koden så slipper du varningar samt att det blir betydligt enklare att se vad du gör.
I det här fallet så skapar du en typsäker comparator som bara tar in sträng argumenten och jämnför dom utan att ta hänsyn till små och stora bokstäver. Du behöver inte ens specifera en comparator funktion för sort utan du kan skicka null som argument eftersom String implementerar CompareTo interfacet. Men om du gör det så kommer sort att ta hänsyn till stora och små bokstäver.

Kod: Markera allt


      Arrays.sort(nameFalt, new Comparator<String>()

            {

            public int compare(String s1, String s2)
            {

               return s1.compareToIgnoreCase(s2);
            
            }
            
            });


The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
Skriv svar

Återgå till "Programmering och webbdesign"