Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner)

Ich möchte ein Programm schreiben, welches mir meinen Stundenplan ausgibt/bearbeitet und das Programm soll auch per Eingabe zum Beenden gebracht werden.

Ich habe mit Scannern wenig Erfahrung und wühle mich seit Tagen durchs Internet.
Kann mir jemand zeigen wie ich den Scanner nach einer bestimmten Eingabe suchen lasse?

Hier ist mein Bisheriger Code:

Java:
import java.util.Scanner;

public class StundenplanClass {
    static void AusgabeStundenplan() {

        String A[][];
        A = new String[6][9];

        // Stundenanzahl
        A[0][0] = " -   |";
        A[0][1] = "1.   |";
        A[0][2] = "2.   |";
        A[0][3] = "3.   |";
        A[0][4] = "4.   |";
        A[0][5] = "5.   |";
        A[0][6] = "6.   |";
        A[0][7] = "8.   |";
        A[0][8] = "9.   |";

        // Montag
        A[1][0] = "Mo.  |";
        A[1][1] = "Dtsc |";
        A[1][2] = "Dtsc |";
        A[1][3] = "Math |";
        A[1][4] = "Math |";
        A[1][5] = "SoWi |";
        A[1][6] = "SoWi |";
        A[1][7] = "TeWi |";
        A[1][8] = "TeWi |";

        // Dienstag
        A[2][0] = "Di.  |";
        A[2][1] = "TeWi |";
        A[2][2] = "TeWi |";
        A[2][3] = "Engl |";
        A[2][4] = "Engl |";
        A[2][5] = "Chem |";
        A[2][6] = "Chem |";
        A[2][7] = "---- |";
        A[2][8] = "---- |";

        // Mittwoch
        A[3][0] = "Mi.  |";
        A[3][1] = "Tech |";
        A[3][2] = "Tech |";
        A[3][3] = "Tech |";
        A[3][4] = "Tech |";
        A[3][5] = "PoWi |";
        A[3][6] = "PoWi |";
        A[3][7] = "Gsch |";
        A[3][8] = "Gsch |";

        // Donnerstag
        A[4][0] = "Do.  |";
        A[4][1] = "Dtsc |";
        A[4][2] = "Dtsc |";
        A[4][3] = "Sprt |";
        A[4][4] = "Sprt |";
        A[4][5] = "Ethk |";
        A[4][6] = "Ethk |";
        A[4][7] = "---- |";
        A[4][8] = "---- |";

        // Freitag
        A[5][0] = "Fr.";
        A[5][1] = "Math";
        A[5][2] = "Math";
        A[5][3] = "Engl";
        A[5][4] = "Engl";
        A[5][5] = "Biol";
        A[5][6] = "Biol";
        A[5][7] = "Phys";
        A[5][8] = "Phys";

        /*
         * Anmerkung d. Redaktion: Ich weiß, dass man folgenden Code mit einer
         * geschachtelten for-Schleife drastisch verkürzen könnte. Aus Gründen
         * der Lesbarkeit des Endergebnisses habe ich mich dennoch für die
         * textlastigere Variante entschieden.
         */


//das folgende ist eine reine Ausgabe vom Stundenplan
        System.out
                .println(A[0][0] + "\t" + A[1][0] + "\t" + A[2][0] + "\t" + A[3][0] + "\t" + A[4][0] + "\t" + A[5][0]);
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][1] + "\t" + A[1][1] + "\t" + A[2][1] + "\t" + A[3][1] + "\t" + A[4][1] + "\t" + A[5][1]);
        System.out
                .println(A[0][2] + "\t" + A[1][2] + "\t" + A[2][2] + "\t" + A[3][2] + "\t" + A[4][2] + "\t" + A[5][2]);
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][3] + "\t" + A[1][3] + "\t" + A[2][3] + "\t" + A[3][3] + "\t" + A[4][3] + "\t" + A[5][3]);
        System.out
                .println(A[0][4] + "\t" + A[1][4] + "\t" + A[2][4] + "\t" + A[3][4] + "\t" + A[4][4] + "\t" + A[5][4]);
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][5] + "\t" + A[1][5] + "\t" + A[2][5] + "\t" + A[3][5] + "\t" + A[4][5] + "\t" + A[5][5]);
        System.out
                .println(A[0][6] + "\t" + A[1][6] + "\t" + A[2][6] + "\t" + A[3][6] + "\t" + A[4][6] + "\t" + A[5][6]);
        System.out.println("----------------------------------------------");
        System.out.println(
                "7.   |" + "\t" + " L   |" + "\t" + " U   |" + "\t" + " N   |" + "\t" + " C   |" + "\t" + " H");
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][7] + "\t" + A[1][7] + "\t" + A[2][7] + "\t" + A[3][7] + "\t" + A[4][7] + "\t" + A[5][7]);
        System.out
                .println(A[0][8] + "\t" + A[1][8] + "\t" + A[2][8] + "\t" + A[3][8] + "\t" + A[4][8] + "\t" + A[5][8]);
        System.out.println("\n");
    }

    static void TagAuswaehlen() {
//hier drinne möchte ich mit einer eingabe danach suchen lassen ob eine "1" eine "2" oder eine "3" eingegeben wurde. Danach möchte ich dann das entsprechende ausführen.
        System.out.println(
                "Du möchtest ein Fach ändern?\nAn welchem Tag möchtest du das Fach ändern?\n\nTage: 1=Mo 2=Di 3=Mi 4=Do 5=Fr\n");

//hier bekomme ich Probleme. Ich weiß ab hier nicht wie ich es hin bekomme den Scanner
//nach einer Bestimmten Eingabe suchen zu lassen.
        Scanner TagScanner = new Scanner(System.in);

        // if (TagScanner > 0){
        // System.out.println("hat geklappt!");
        // }
       
       
        while (TagScanner.hasNext()) {
               System.out.println("" + TagScanner.hasNextLong());
            int a = TagScanner.nextInt();

            System.out.println(a + "Das hier ist eine Eingabe!!!");

            // a jetzt für den x wert in dem array einsetzen lassen!!!

        }
        TagScanner.close();
       
        String A[][];
        A = new String[6][9];

        // Stundenanzahl
        A[0][0] = " -   |";
        A[0][1] = "1.   |";
        A[0][2] = "2.   |";
        A[0][3] = "3.   |";
        A[0][4] = "4.   |";
        A[0][5] = "5.   |";
        A[0][6] = "6.   |";
        A[0][7] = "8.   |";
        A[0][8] = "9.   |";

        // Montag
        A[1][0] = "Mo.  |";
        A[1][1] = "Dtsc |";
        A[1][2] = "Dtsc |";
        A[1][3] = "Math |";
        A[1][4] = "Math |";
        A[1][5] = "SoWi |";
        A[1][6] = "SoWi |";
        A[1][7] = "TeWi |";
        A[1][8] = "TeWi |";

        // Dienstag
        A[2][0] = "Di.  |";
        A[2][1] = "TeWi |";
        A[2][2] = "TeWi |";
        A[2][3] = "Engl |";
        A[2][4] = "Engl |";
        A[2][5] = "Chem |";
        A[2][6] = "Chem |";
        A[2][7] = "---- |";
        A[2][8] = "---- |";

        // Mittwoch
        A[3][0] = "Mi.  |";
        A[3][1] = "Tech |";
        A[3][2] = "Tech |";
        A[3][3] = "Tech |";
        A[3][4] = "Tech |";
        A[3][5] = "PoWi |";
        A[3][6] = "PoWi |";
        A[3][7] = "Gsch |";
        A[3][8] = "Gsch |";

        // Donnerstag
        A[4][0] = "Do.  |";
        A[4][1] = "Dtsc |";
        A[4][2] = "Dtsc |";
        A[4][3] = "Sprt |";
        A[4][4] = "Sprt |";
        A[4][5] = "Ethk |";
        A[4][6] = "Ethk |";
        A[4][7] = "---- |";
        A[4][8] = "---- |";

        // Freitag
        A[5][0] = "Fr.";
        A[5][1] = "Math";
        A[5][2] = "Math";
        A[5][3] = "Engl";
        A[5][4] = "Engl";
        A[5][5] = "Biol";
        A[5][6] = "Biol";
        A[5][7] = "Phys";
        A[5][8] = "Phys";

        /*
         * Anmerkung d. Redaktion: Ich weiß, dass man folgenden Code mit einer
         * geschachtelten for-Schleife drastisch verkürzen könnte. Aus Gründen
         * der Lesbarkeit des Endergebnisses habe ich mich dennoch für die
         * textlastigere Variante entschieden.
         */

        System.out
                .println(A[0][0] + "\t" + A[1][0] + "\t" + A[2][0] + "\t" + A[3][0] + "\t" + A[4][0] + "\t" + A[5][0]);
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][1] + "\t" + A[1][1] + "\t" + A[2][1] + "\t" + A[3][1] + "\t" + A[4][1] + "\t" + A[5][1]);
        System.out
                .println(A[0][2] + "\t" + A[1][2] + "\t" + A[2][2] + "\t" + A[3][2] + "\t" + A[4][2] + "\t" + A[5][2]);
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][3] + "\t" + A[1][3] + "\t" + A[2][3] + "\t" + A[3][3] + "\t" + A[4][3] + "\t" + A[5][3]);
        System.out
                .println(A[0][4] + "\t" + A[1][4] + "\t" + A[2][4] + "\t" + A[3][4] + "\t" + A[4][4] + "\t" + A[5][4]);
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][5] + "\t" + A[1][5] + "\t" + A[2][5] + "\t" + A[3][5] + "\t" + A[4][5] + "\t" + A[5][5]);
        System.out
                .println(A[0][6] + "\t" + A[1][6] + "\t" + A[2][6] + "\t" + A[3][6] + "\t" + A[4][6] + "\t" + A[5][6]);
        System.out.println("----------------------------------------------");
        System.out.println(
                "7.   |" + "\t" + " L   |" + "\t" + " U   |" + "\t" + " N   |" + "\t" + " C   |" + "\t" + " H");
        System.out.println("----------------------------------------------");
        System.out
                .println(A[0][7] + "\t" + A[1][7] + "\t" + A[2][7] + "\t" + A[3][7] + "\t" + A[4][7] + "\t" + A[5][7]);
        System.out
                .println(A[0][8] + "\t" + A[1][8] + "\t" + A[2][8] + "\t" + A[3][8] + "\t" + A[4][8] + "\t" + A[5][8]);
        System.out.println("\n");
    }

    public static void main(String[] args) {

        System.out.println("|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
        System.out.println("|\t\t\tStundenplan:\t\t\t|");
        System.out.println("|Was möchtest du tun?                                   |");
        System.out.println("|1. Anzeige des aktuellen Stundenplans                  |");
        System.out.println("|2. Für die Änderung des aktuellen Stundenplans         |");
        System.out.println("|3. Um zu beenden                                       |");
        System.out.println("|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");

        AusgabeStundenplan();
        TagAuswaehlen();

        /*
         * if a = 1 {
         *
         * }
         *
         * int Tag = 0;
         *
         * switch (a) { case 1: A[0] [0] = "456"; break; case 2: Tag =2; break;
         * case 3: Tag =3; break; case 4: Tag = 4; break; case 5: Tag = 5;
         * break;
         *
         *
         *
         * }
         */
    }

}
 
Was wird denn ausgegeben wenn du es laufen lässt?
Eingaben liest man grundsätzlich mit
Java:
DeinScanner.next();
oder mit
Java:
DeinScanner.nextInr();
(wenn es eine Ganzzahl ist).

Weiter geht es mit einem if oder einem switch.
 
Es soll je nachdem ob
  • "1" eingegeben wird, soll der Stundenplan ausgegeben werden (also wenn man den Stundenplan zum Beispiel bearbeitet, soll dann das neue Format ausgegeben werden
  • "2" eingegeben wird, soll man als erstes gefragt werden an welchem Tag man etwas abändern möchte, danach soll gefragt werden in welcher Stunde man was abändern möchte, danach soll gefragt werden wie das Fach heißt das man eintragen möchte (das soll dann nur irgendein String sein) diese eingaben möchte ich dann in ein temporäres Array schreiben um damit dann den Eintrag ab zu ändern.
  • "3" eingegeben wird, soll das Programm beendet werden. Das mache ich wahrscheinlich dann durch einen "break" befehl

Danke schon mal für die bisherigen Antworten! Ist sehr nett das man hier so schnell Hilfe bekommt. Ich werde die Tipps gleich mal ausprobieren.
 
Also ich weiß noch immer nicht wie ich das jetzt einsetzen muss. Bzw. wie das zu machen ist ob ich das schon in die Bedingung der while schleife rein bringen kann oder erst später.
Sorry, dass ich so wenig Ahnung habe, ich versuch es wirklich seit Stunden aber verstehe es einfach nicht.

Hier der Code der danach suchen soll ob eine 1/2/3 eingegeben wurde (perfekt wäre es natürlich wenn bei einer anderen Eingabe als 1/2/3 einfach ausgegeben wird, dass das eine ungültige Zahl ist aber das ist ja jetzt noch gar nicht relevant.):


Java:
    Scanner TagScanner = new Scanner(System.in);

        // if (TagScanner > 0){
        // System.out.println("hat geklappt!");
        // }
      
      
        while (TagScanner.hasNext()) {
              System.out.println("" + TagScanner.hasNextLong());
            int a = TagScanner.nextInt();

            System.out.println(a + "Das hier ist deine Eingabe!!!");
}
 
Also ich weiß noch immer nicht wie ich das jetzt einsetzen muss. Bzw. wie das zu machen ist ob ich das schon in die Bedingung der while schleife rein bringen kann oder erst später.
Sorry, dass ich so wenig Ahnung habe, ich versuch es wirklich seit Stunden aber verstehe es einfach nicht.

Hier der Code der danach suchen soll ob eine 1/2/3 eingegeben wurde (perfekt wäre es natürlich wenn bei einer anderen Eingabe als 1/2/3 einfach ausgegeben wird, dass das eine ungültige Zahl ist aber das ist ja jetzt noch gar nicht relevant.):
Einfach ein if (a==1) { ... } nach dem int a= , und da dann de entsprechenden Code für deine jeweilige Aktion.

Ich würde dir raten, erstmal klein anzufangen, und nicht gleich so einen Riesen Block Code zu schreiben, das machst sowohl für dich als auch für helfende deutlich leichter und du wirst nicht gleich von Problemen erschlagen 😉
 

Zurück
Oben