Erste Schritte Arrayliste alphabetisch sortieren mit Eingabe

Skarisch

Mitglied
Hallo erstmal.
Ich bin neu hier.
Wir machen in der Schule gerade Java und ich muss sagen, der Unterricht ist miserabel. Aber gut, jetzt mal zum eig Problem:
Ich habe die Aufgabe bekommen, mittels Eingabe eine Liste von 4 Namen Alphabetisch zu orden. (Die anfangsbuchstaben müssen verschieden sein.
Mein Plan sieht so aus:

Java:
public class Sortieren {

static char check1 (int b, int a, char Buchstabe, char Eingabe[0-b]) {
int c=0;
int d=0;
char[] Reihenfolge= new char[a];

while (!Buchstabe= 'z') {
while (!c==a) {
if (Eingabe[c]==Buchstabe) {
Reihenfolge[d]=Eingabe[c];
d=d++;
}
else {
c=c++;
}
c=c-a;
return c;
Buchstabe=Buchstabe++;
}
}

public static void main (String[]args) {
int a=4; //Maximum an Arrays
int b=1;
char Buchstabe= 'A';
char[] Eingabe= new char[a];
System.out.println("Gib hier die ersten Namen ein");
Eingabe[b]=<eingabe>;
b=b++;
while (!b==a) {
System.out.println("Gib hier die nächsten Namen ein");
Eingabe[b]=<eingabe>;
b=b++;
System.out.println("Die Liste ist nun sortiert:"char check1());
}

Als Teilprobleme habe ich somit:

Wie kann ich einen char ein geben? Oder muss ich einen String in einen char umwandeln? wenn ja, wie geht das?

Beim übergeben von arrays, wie kann man da das variable feld von arrayname übergeben?
static char check1 (char arrayname[variable]) {} geht nicht

Wird hierbei der Anfangsbuchstabe gecheckt oder ob der Wert den Buchstaben überhaupt enthält? Oder gleicht das Programm die ganzen worte ab?


Ich weiß dass dies alles etwas wirr ausieht, doch weiß ich nicht, wie ich mich sonst ausdrücken solll
🙁
 
Wir machen in der Schule gerade Java und ich muss sagen, der Unterricht ist miserabel.
Genai so sieht Dein Code auch aus... ;o)

Wie kann ich einen char ein geben? Oder muss ich einen String in einen char umwandeln? wenn ja, wie geht das?
Ja,
Code:
String.charAt()
, nächeres in der API zu [JAPI]String[/JAPI].

Beim übergeben von arrays, wie kann man da das variable feld von arrayname übergeben?
static char check1 (char arrayname[variable]) {} geht nicht
aber ohne
Code:
variable
gehts.
Wird hierbei der Anfangsbuchstabe gecheckt oder ob der Wert den Buchstaben überhaupt enthält? Oder gleicht das Programm die ganzen worte ab?
Im moment compiliert er wohl nicht einmal...
Um das genauer zu analysieren hab ich keine Lust.

Ich würde aber vorschlagen, dass Du dich von dieser Programmierweise ganz abwendest und das einsetzt, was Java schon mitbringt:

Die eingegeben Namen werden in eines [EDIT][STRIKE][JAPI]Hashset<String>[/JAPI][/STRIKE][JAPI]TreeSet[/JAPI][/EDIT] gesammelt, der sie selbstständig sortiert.

Fertig.

bye
TT
 
Zuletzt bearbeitet:
Uff. Das ist mal ne klare Ansage. Schonmal vielen Dank für deine Hilfe. Gibt es vtl eine Art Anleitung/Anweisung zum erlernen der Grundlagen außer "Java ist auch eine Insel"?
Ich möchte schon vernünftig lernen...
 
Uff. Das ist mal ne klare Ansage. Schonmal vielen Dank für deine Hilfe. Gibt es vtl eine Art Anleitung/Anweisung zum erlernen der Grundlagen außer "Java ist auch eine Insel"?
Ich möchte schon vernünftig lernen...

Hm, was willst du denn? Es gibt so Vieles. Unzählige Bücher, Videotutorials oder diverse Tutorials im Internet.
 
Schwer zu sagen. Auf jeden FAll die Grundlagen. Ich bin mir nicht sicher, in wie weit das Aussagekräftig ist, doch wie soll ich es sonst sagen?!..
 
Ok Danke. Um nochmal auf mein Programm zurück zu kommen:
ich bekomme den error: Sortieren.java:10:20: error: array required, but char found
bei der Stelle
[Java] if (Eingabe[c]==Buchstabe) {[/code]
Des weiteren Sortieren.java:8:12: error: bad operand type char for unary operator '!' bei
Java:
while (!(Buchstabe='z')) {
Und Sortieren.java:28:24: error: method charAt in class String cannot be applied to given types; bei
Java:
Eingabe[b]=String.charAt();
Ich muss leider nochmal nachfragen, da dies übers Wochenende fertig werden soll/muss und die Lehrerin dein Ansatz (siehe erster Post) schon hat. Da kann ich net mit was neuem aufkreuzen...
 
es gibt Vergleichsoperatioren wie wie == oder !=, aber = ist eine Zuweisung,
das ! nach vorne zu stellen machst du ja öfter, unterlasse das lieber wenn != auch geht


was soll beim unteren passieren? was soll 'String.charAt()' bewirken? weg damit

das obere könnte richtiger Code sein wenn Buchstabe ein char ist und Eingabe ein char[], wie dein Code im ersten Posting behauptet,
ohne aktuellen vollständigen Code nicht zu beurteilen, womöglich nur reingekommen weil der Compiler vieles andere falsch versteht,

> char Eingabe[0-b]
als Parameterdeklaration etwa..

ganz böse ist auch
> Buchstabe=Buchstabe++;
...
 
Momentan sieht mein Code so aus:
Java:
public class Sortieren {
  
  static char check1 (int b, int a, char Buchstabe, char Eingabe) {
    int c=0;
    int d=0;
    char[] Reihenfolge= new char[a];
    
    while (!(Buchstabe='z')) {
      while (!(c==a)) {
        if (Eingabe[c]==Buchstabe) {
          Reihenfolge[d]=Eingabe[c];
          d=d++;
        }
        else {
          c=c++;
        }
        c=c-a;
        Buchstabe=Buchstabe++;
      }
    }
    }
    public static void main (String[]args) {
      int a=4; //Maximum an Arrays
      int b=1;
      char Buchstabe= 'A';
      char[] Eingabe= new char[a];
      System.out.println("Gib hier die ersten Namen ein");
      Eingabe[b]=String.charAt();
      b=b++;
      while (!(b==a)) {
        System.out.println("Gib hier die nächsten Namen ein");
        Eingabe[b]=String.charAt();
        b=b++;
        System.out.println("Die Liste ist nun sortiert:"+ check1());
      }
      }
      }
und String.charAt() dacht ich ist für die eingabe...
 
> , char Buchstabe, char Eingabe) {

> if (Eingabe[c]==Buchstabe) {

warum gibst du Buchstabe direkt in den Vergleich und nicht Buchstabe[e] oder so?
warum machst du [c] bei Eingabe, welches hier offensichtlich kein Array ist?

ich habe ja nun schon davon gesprochen, was soll ich noch mehr sagen?
da kann man dann nur noch bald mit Lästern anfangen

-----

wie man von der Konsole einliest kann man in Lehrbüchern oder in Suchmaschinen nachschlagen,
leider nicht das einfachste Thema, jedes Programm ist am Anfang besser ohne Eingabe dran, aber darauf läßt du dich wohl nicht ein

----

ebenfalls wiederholt:
Buchstabe=Buchstabe++;
b=b++;
b=b++;
ist ganz ganz ganz ganz ganz doll schlimm,
nur weil irgendwo mal i++; steht, sollte man das nicht beliebig irgendwo hinschreiben,
auf Späße wie ++ verzichte lieber

oder wenn dann jeden einzelnen Befehl erstmal kennenlernen!
schreibe keine komplizierten Programme mit Eingabe sondern
Java:
public class Test2 {
    public static void main(String[] args)  {
        int a = 4;
        a = a++;
        System.out.println("a: " + a);
    }
}
und schau dir an was passiert,
das ist ein Beispiel für ein sinnvolles Programm mit klarer Zielsetzung und gleich überprüfter Ausgabe,
nicht die tollste Leistungsfähigkeit,
aber lieber kleine richtige Programme, als großes Chaos

100 Befehle unbekannter Bedeutung reinzusetzen, dann an Compilerfehler oder später falschen Endergebnis zu sitzen ohne sich um jede Zeile einzeln zu kümmern, ist weniger gut,
Schritt für Schritt vorgehen,
z.B. auch ein Programm schreiben welches einen Wert einliest und ausgibt
 

Neue Themen


Zurück
Oben