Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen

Boegi

Mitglied
Java:
package spielerpunkte;
import javax.swing.JOptionPane;
public class spielerpunkte {
 public static void main(String[] args) {
 
  int arcobello, noreau, wick, oceberg, ebbett, sutter, lapierre;
 
  int a, b, c, d;
 
  arcobello=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Arcobello ein"));
 
  noreau=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Noreau ein"));
  wick=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Wick ein"));
 
  oceberg=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Oceberg ein"));
  ebbett=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Ebbett ein"));
  sutter=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Sutter ein"));
  lapierre=Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für La Pierre ein"));
 
 
  a= arcobello + wick + arcobello*2;
 
  System.out.println("a hat " + a);
 
  b= noreau + noreau + noreau*2;
 
  System.out.println("b hat " + b);
 
  c= noreau + lapierre + sutter*2;
 
  System.out.println("c hat " + c);
 
  d= oceberg + ebbett + sutter*2;
 
  System.out.println("d hat " + d);
 
  int[] unsortiert = { a, b, c, d};
  int[] sortiert = selectionsort(unsortiert);
  for (int i = 0; i < sortiert.length; i++) {
   System.out.print(sortiert[i] + ", ");
  }
 }
 public static int[] selectionsort(int[] sortieren) {
  for (int i = 0; i < sortieren.length - 1; i++) {
   for (int j = i + 1; j < sortieren.length; j++) {
    if (sortieren[i] > sortieren[j]) {
     int temp = sortieren[i];
     sortieren[i] = sortieren[j];
     sortieren[j] = temp;
    }
   }
  }
  return sortieren;
}}
Hallo zusammen, mein Problem ist. Die Variablen geben die Punktzahl aus aber ich möchte den Buchstaben noch dazu. Wie geht dies?
 
Zuletzt bearbeitet von einem Moderator:
Am besten mit einer Klasse, die einen Namen und die Punktzahl als Attribute enthält.
Dein String "a" hat nichts mit irgendeiner Variable zu tun, die zufällig auch a heißt.

Java:
public class Spielerpunkte {
    public static void main(String[] args) {

        int arcobello, noreau, wick, oceberg, ebbett, sutter, lapierre;

        Spieler a, b, c, d;

        arcobello = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Arcobello ein"));

        noreau = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Noreau ein"));
        wick = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Wick ein"));

        oceberg = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Oceberg ein"));
        ebbett = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Ebbett ein"));
        sutter = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für Sutter ein"));
        lapierre = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für La Pierre ein"));


        a = new Spieler("a", arcobello + wick + arcobello * 2);
        System.out.println(a.getName() + " hat " + a.getPunkte());

        b = new Spieler("b", noreau + noreau + noreau * 2);
        System.out.println(b.getName() + " hat " + b.getPunkte());

        c = new Spieler("c", noreau + lapierre + sutter * 2);
        System.out.println(c.getName() + " hat " + c.getPunkte());

        d = new Spieler("d", oceberg + ebbett + sutter * 2);
        System.out.println(d.getName() + " hat " + d.getPunkte());

        Spieler[] unsortiert = {a, b, c, d};
        Spieler[] sortiert = selectionsort(unsortiert);
        for (int i = 0; i < sortiert.length; i++) {
            System.out.print(sortiert[i] + ", ");
        }
    }

    public static Spieler[] selectionsort(Spieler[] sortieren) {
        for (int i = 0; i < sortieren.length - 1; i++) {
            for (int j = i + 1; j < sortieren.length; j++) {
                if (sortieren[i].getPunkte() > sortieren[j].getPunkte()) {
                    Spieler temp = sortieren[i];
                    sortieren[i] = sortieren[j];
                    sortieren[j] = temp;
                }
            }
        }
        return sortieren;
    }

}

class Spieler {


    private String name;
    private int punkte;

    Spieler(String name, int punkte) {
        this.name = name;
        this.punkte = punkte;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPunkte() {
        return punkte;
    }

    public void setPunkte(int punkte) {
        this.punkte = punkte;
    }

    @Override
    public String toString() {
        return name + " : " + punkte;
    }
}
 
Ja eine Nachfrage. Was gibt es denn alles? Name, Buchstabe und Spielerpunkte oder, und es soll nach Spielerpunkte sortiert werden oder, und es soll erst nach der Sortierung ausgegeben werden oder, und die Zeit für das Sortieren ist doch egal oder?
 
Hallo zusammen
danke erstmals für die Antworten. Das ganze Programm soll Spieler enthalten die von jemandem (Angemeldeten) ausgesucht werden. Die Spieler sollten einzeln aufgerufen werden können und die Punkte erneut eingegeben werden. Diese Punkte werden dann denn Angemeldeten Personen zugeteilt. Die Rangliste sollte mit der Punktzahl der Angemeldeten inklusive Namen entstehen.

Ich kenne mich noch nicht so gut aus, da ich erst seit etwa einem halben Jahr Java programmieren lerne.

Gruss Boegi
 
Hallo nochmals

Mein nächstes Problem ist. Ich möchte die Variable sortieren von Tarrew in einem Fenster ausgeben.
So weit bin ich gekommen
 

Spieler[] unsortiert = {a, b, c, d};

Spieler[] sortiert = selectionsort(unsortiert);

for (int i = 0; i < sortiert.length; i++) {

System.out.print(sortiert + "\n");

JOptionPane.showMessageDialog(null, sortiert + "\n");

JFrame Fenster = new JFrame();

Fenster.setTitle("Tabelle");

Fenster.setSize(800,1200);

Fenster.setLocation(300,600);

Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Fenster.setVisible(true);

JLabel a = new JLabel();

}

}
public static Spieler[] selectionsort(Spieler[] sortieren) {

for (int i = 0; i < sortieren.length - 1; i++) {

for (int j = i + 1; j < sortieren.length; j++) {

if (sortieren.getPunkte() > sortieren[j].getPunkte()) {

Spieler temp = sortieren;

sortieren = sortieren[j];

sortieren[j] = temp;
}
}
}
return sortieren;
}
}
 
Mein nächstes Problem ist. Ich möchte die Variable sortieren von Tarrew in einem Fenster ausgeben.
Ich seh da nur einen Parameter "sortieren"....

Weißt du scho, was Methoden sind? Denn wenn nicht dann macht es wenig Sinn mit einem "Stein" zu diskutieren....

Süpi wäre es außerdem, wenn du deinen Programmcode in Java-Code-Tags setzst und einfügst.
 
Schau Dir mal das an.
Code:
/**
* Die Klassen Spieler und Visitor implementieren dieses Interface. Dadurch kann
* die Funktion selectionsort() beide Typen sortieren.
*/
public interface CountAble {
    public int getPoints();
}
Code:
import java.util.Vector;

public class Visitor implements CountAble {
    private Vector<Spieler> set = new Vector<Spieler>();
    private String name = null;

    public Visitor(String name) {
        this.name = name;
    }

    public void add(Spieler spieler) {
        set.add(spieler);
    }

    @Override
    public int getPoints() {
        int points = 0;
        for (Spieler s : set) {
            points += s.getPoints();
        }
        return points;
    }

    @Override
    public String toString() {
        StringBuffer tmp = new StringBuffer();
        tmp.append("|" + name + "| < ");
        for (Spieler s : set) {
            tmp.append(s.getName() + " ");
        }
        tmp.append(">\n");
        tmp.append("Punkte:\t" + getPoints());
        return tmp.toString();
    }
}
Code:
class Spieler implements CountAble {
    private String name;
    private int punkte;

    Spieler(String name, int punkte) {
        this.name = name;
        this.punkte = punkte;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int getPoints() {
        return punkte;
    }

    public void setPunkte(int punkte) {
        this.punkte = punkte;
    }

    @Override
    public String toString() {
        return name + " : " + punkte;
    }
}
Code:
import javax.swing.JOptionPane;

public class Spielerpunkte {
    public static void main(String[] args) {
        String[] playerNames = { "Arcobello", "Noreau", "Wick", "Oceberg", "Ebbett", "Sutter", "Lapierre" };
        String[] visitorNames = { "a", "b", "c", "d" };
        Spieler[] spieler = new Spieler[playerNames.length];
        Visitor[] visitors = new Visitor[visitorNames.length];

        for (int i = 0; i < playerNames.length; i++)
            spieler[i] = createSpieler(playerNames[i]);
        for (int i = 0; i < visitorNames.length; i++)
            visitors[i] = new Visitor(visitorNames[i]);
        visitors[0].add(spieler[0]);
        visitors[0].add(spieler[2]);
        visitors[0].add(spieler[0]);
        visitors[0].add(spieler[0]);

        visitors[1].add(spieler[1]);
        visitors[1].add(spieler[1]);
        visitors[1].add(spieler[1]);
        visitors[1].add(spieler[1]);

        visitors[2].add(spieler[1]);
        visitors[2].add(spieler[5]);
        visitors[2].add(spieler[5]);
        visitors[2].add(spieler[1]);

        visitors[3].add(spieler[3]);
        visitors[3].add(spieler[4]);
        visitors[3].add(spieler[5]);
        visitors[3].add(spieler[5]);

        printVisitors(visitors);
        selectionsort(visitors);
        printVisitors(visitors);
    }

    public static Spieler createSpieler(String name) {
        int punkte = Integer.parseInt(JOptionPane.showInputDialog("Geben sie die Punkte für " + name + " ein:"));
        return new Spieler(name, punkte);
    }

    public static void printVisitors(Visitor[] visitors) {
        for (Visitor v : visitors) {
            System.out.println("----------------------\n");
            System.out.println(v);
        }
    }

    public static void selectionsort(CountAble[] spieler) {
        for (int i = 0; i < spieler.length - 1; i++) {
            for (int j = i + 1; j < spieler.length; j++) {
                if (spieler[i].getPoints() > spieler[j].getPoints()) {
                    CountAble temp = spieler[i];
                    spieler[i] = spieler[j];
                    spieler[j] = temp;
                }
            }
        }
    }

}
 
Hallo zusammen und danke für eure Hilfe.

Ja ich weiss was Methoden sind.

Ich bin in einem Fernstudium. Das Studium geht etwa 15 Monate und ich bin jetzt im 5 Monat. 🙂
 
Code:
package spielerpunkte;

import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.plaf.PanelUI;

public class spielerpunkte {

    public static void main(String[] args) {
        int arcobelloas, noreauas, wickas, ocebergas, ebbettas, sutteras, lapierreas;
       
        int arcobellogo, noreaugo, wickgo, oceberggo, ebbettgo, suttergo, lapierrego;

        Spieler andrebeucler, patrickburger, tobiasschläpfer, dominikburger;
       
        arcobelloas = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von Arcobello ein"));
        arcobellogo = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von Arcobello ein"));
        noreauas = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von Noreau ein"));
        noreaugo = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von Noreau ein"));
        wickas = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von Wick ein"));
        wickgo = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von Wick ein"));
        ocebergas = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von Oceberg ein"));
        oceberggo = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von Oceberg ein"));
        ebbettas = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von Ebbett ein"));
        ebbettgo = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von Ebbett ein"));
        sutteras = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von Sutter ein"));
        suttergo = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von Sutter ein"));
        lapierreas = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Assists von La Pierre ein"));
        lapierrego = Integer.parseInt(JOptionPane.showInputDialog("Gebe die Tore von La Pierre ein"));

        System.out.println("Arcobello hat " + (arcobelloas + arcobellogo)+ " Punkte");     
        System.out.println("Noreau hat " + (noreauas + noreaugo) + " Punkte");     
        System.out.println("Wick hat " + (wickas + wickgo) + " Punkte");     
        System.out.println("Oceberg hat " + (ocebergas + oceberggo) + " Punkte");    
        System.out.println("Ebbett hat " + (ebbettas + ebbettgo) + " Punkte");     
        System.out.println("Sutter hat " + (sutteras + suttergo) + " Punkte");     
        System.out.println("La Pierre hat " + (lapierreas + lapierrego) + " Punkte\n");     


        andrebeucler = new Spieler("Andre Beucler", arcobelloas + wickgo + arcobellogo * 2);
        System.out.println(andrebeucler.getName() + " hat " + andrebeucler.getPunkte());

        patrickburger = new Spieler("Patrick Burger", noreaugo + noreauas + noreaugo * 2);
        System.out.println(patrickburger.getName() + " hat " + patrickburger.getPunkte());

        tobiasschläpfer = new Spieler("Tobias Schläpfer", noreauas + lapierrego + sutteras * 2);
        System.out.println(tobiasschläpfer.getName() + " hat " + tobiasschläpfer.getPunkte());

        dominikburger = new Spieler("Dominik Burger", oceberggo + ebbettas + suttergo * 2);
        System.out.println(dominikburger.getName() + " hat " + dominikburger.getPunkte() + "\n");
        Spieler[] unsortiert = {andrebeucler, patrickburger, tobiasschläpfer, dominikburger};
        Spieler[] sortiert = selectionsort(unsortiert);
        for (int i = 0; i < sortiert.length; i++) {
            System.out.print(sortiert[i] + "\n");
           
            JFrame Fenster = new JFrame();
            Fenster.setTitle("Tabelle");
            Fenster.setSize(800,1200);
            Fenster.setLocation(300,600);
            Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Fenster.setVisible(true);
            JLabel text = new JLabel();
           
        }
    }

    public static Spieler[] selectionsort(Spieler[] sortieren) {
        for (int i = 0; i < sortieren.length - 1; i++) {
            for (int j = i + 1; j < sortieren.length; j++) {
                if (sortieren[i].getPunkte() > sortieren[j].getPunkte()) {
                    Spieler temp = sortieren[i];
                    sortieren[i] = sortieren[j];
                    sortieren[j] = temp;
                }
            }
        }
        return sortieren;
    }

        }

class Spieler {


    private String name;
   
    private int punkte;

    Spieler(String name, int punkte) {
        this.name = name;
        this.punkte = punkte;
    }
       
   

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPunkte() {
        return punkte;
    }

    public void setPunkte(int punkte) {
        this.punkte = punkte;
    }

    @Override
    public String toString() {
        return name + " : " + punkte;
    }
}
 
Hallo zusammen

Ich habe die variablen jetzt auf das Fenster bekommen.
Das Problem jetzt besteht. Für jeden Spieler habe ich jetzt ein eigenes Fenster.
Möchte diese aber sortiert in einem Fenster haben.

MfG

Boegi
 
Code:
JFrame myFrame = new JFrame("Tabelle");
            myFrame.setVisible(true);
            myFrame.setBounds(300, 200, 700, 400);
            JLabel myText = new JLabel("Rangliste: " + (sortiert[i] + "\n"),SwingConstants.CENTER);
            myFrame.getContentPane().add(myText, BorderLayout.CENTER);
 

Zurück
Oben