Schulaufgabe-Namenssortierung

B

Burgadon

Gast
Hi,

wir haben als Schulaufgabe auf, ein Feld mit vom User einzustellender Größe mit Namen(die auch der user eingibt) zu füllen und die dann zu sortieren. Allerdings hänge ich ein wenig fest. Wenn ich mein Progrämmchen abspiele, gibt er nur einen Namen am Ende aus. Kann mir jemand helfen?

LG

Java:
import static Prog1Tools.IOTools.*;
/**
  *
  *Beschreibung
  *
  * @version 1.0 vom 18.04.2012
  * @author
  */

public class Namenseinordnung2 {

  public static void main(String[] args) {

  //Variablendeklaration
  String name="";
  boolean gefunden=false;
  int feldlänge;

  feldlänge=readInteger("Bitte geben Sie die Anzahl der Namen ein, die Sie eintragen wollen: ");

  String feld1[]= new String [feldlänge+2];

  int i=feldlänge;
  int anzahl=feldlänge;
  char y='j';
  int j=0;
  
  for(int x=0; x<feld1.length; x++)
    feld1[x]="";
  
  while(y=='j' && anzahl>0){
    name=readString("Bitte geben Sie einen neuen Namen ein: ");
  
      while (gefunden==false && i>=0){
         if(name.compareTo(feld1[i])<0){
           feld1[i+1]=feld1[i];
            i--;
         }
         else
           gefunden=true;
      }
      feld1[i+1]=name;

    System.out.println((j+1)+". "+feld1[j]);

    y=readChar("Wollen Sie noch einen Namen eingeben(j/n): ");
    j++;
    anzahl--;
  }

  //Ausgabe
  for(int x=0; x<feld1.length; x++)
    System.out.println((x+1)+". "+feld1[x]);
 

DummerBauer

Mitglied
Java:
    public static String InputName()
    {
                String Name= javax.swing.JOptionPane.showInputDialog("Name:");
                return Name;
    }
    public static void main(String[] args) 
    {
        java.util.ArrayList<String> Feld= new java.util.ArrayList<String>();
        Feld.add(InputName());
        boolean Stopp = true;
        while (Stopp)
        {
            String Frage1=javax.swing.JOptionPane.showInputDialog("Weiteren Namen Eingeben(J/N)");
            if (Frage1.equals("J"))
              {
                  Stopp = true;
                  Feld.add(InputName());
              }
            else
            {
                Stopp=false;
            }
            
        }
        String[]Feld2=new String[Feld.size()];
        for (int for0=0;for0<Feld2.length;for0++)
            Feld2[for0]=Feld.get(for0).toString();
        java.util.Arrays.sort(Feld2);
        for(int  for1=0;for1<Feld2.length;for1++)
            System.out.println(Feld2[for1]);
    }
Bei meiner Version werden die Namen auch gleich alphabetisch sortiert.
 
B

Burgadon

Gast
Hi, Danke schonmal für die Antworten.

@DummerBauer: Vielen Dank für deine Version, allerdings ist sie für mich unbrauchbar, da wir das meiste davon in der Schule nicht benutzen dürfen :S

@Final_Striker: Wenn ich das mache, schreibt er mir auch immer nur auf den letzten Platz im Array den zuletzt eingegebenen Namen. Das programm "rutscht" nicht weiter nach oben....

Vielleicht hat ja noch jemand anderes eine Idee.

LG
 

Ähnliche Java Themen

Neue Themen


Oben