Array - index von Benutzer eingegebenen char ausgeben

sinsin

Neues Mitglied
Hallo!

Ich habe jetzt schon seit mehr als einer halben Stunde gesucht aber trotzdem bzgl. meines Problems nicht auf eine Lösung gekommen:

Ich habe folgenden Java-Code, ein Array vom Typ char initialisert mit den Buchstaben W,E,I,H,N,A,C,H,T,S,M,A,R,K,T.

Was ich jetzt möchte ist, dass Benutzer x einen Buchstaben nach Aufforderung eingibt und anschließend nach dem Index des eingegebenen Buchstabens im Array gesucht wird. Ich habe dafür schon einmal etwas versucht aber leider ohne Erfolg:

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Uebung{

    static BufferedReader eingabe = new BufferedReader(new InputStreamReader(
            System.in));

    public static void main(String[] args) {

    	char s;
 
    	
        // Array initialisieren
        char[] a = {'W', 'E', 'I', 'H', 'N', 'A', 'C', 'H', 'T', 'S', 'M', 'A',
                'R', 'K', 'T'};

        //Ausgabe von Werten im Array, damit Benutzer weiß, werlche Buchstaben zur Auswahl stehen
        for(int i=0; i<a.length; i++)
        {
        	System.out.print(a[i]);
        }
              
        //Zeilenumbrueche
       System.out.print("\n");
                
        // So kann ein einzelner Buchstabe (char) vom Benutzer gelesen werden:
        System.out.print("Buchstabe: ");
        s = EingabeChar();
        
        //HIER AUSGABE DES JEWILIGEN INDEX
        System.out.print(a[s]);

    }

    public static char EingabeChar() {
        String str = null;  //str initialisieren
        try {
            str = eingabe.readLine(); // Eingabestring einlesen
        } catch (IOException e) {
        } // sog. Exception abfangen
        if (str == null) // auf leere Referenz testen
            return 0;
        else
            return str.charAt(0); // 1. Buchstaben zurückgeben
    }

}

Ich weiß, dass bei der Ausgabe nur ein Integer-Wert eingegeben werden kann, aber wie kann man die Ausgabe anders lösen, also das nach Eingabe eines Buchstabens von einem Benutzer der jeweilige Index des Buchstabens ausgegeben wird?

Danke.

Gruß
 
Hallo 🙂

Dazu müsstest du eine Schleife basteln, die das ganze Array durchgeht und prüft, ob das aktuelle Element dem eingegebenen Buchstaben entspricht. Wenn ja: Index-Variable ausgeben und Schleife verlassen.
 
Hi 🙂

so in etwa?

Beispiel: Benutzer gibt Buchstaben E ein. Folgende Schleife durchsucht Array nach dem Buchstaben und gibt den Index zurück:

Java:
int i = 0;
while(i < a.length){

If (i='eingabe Benutzer'){
System.out.println(a[i]);
break;
}
else {
i++;
}

}

Bin mir nicht ganz sicher, wie ich die Eingabe vom Benutzer integriere. Kann da jemand vielleicht unterstützen 🙁 ?

Danke!
 
Hej, ganz kurz und knapp, sollte funktionieren.
s.CharAt(0) für das erste zeichen des strings nehmen, sonst kannste die beiden schelcht miteinander vergleichen.

Java:
import java.util.Scanner;
     
    public class Uebung{
     
        public static void main(String[] args) {    
                
           
            char[] a = {'W', 'E', 'I', 'H', 'N', 'A', 'C', 'H', 'T', 'S', 'M', 'A',
                    'R', 'K', 'T'};
     
           for(int i=0; i<a.length; i++)
            {
                System.out.print(a[i]);
            }
                 
           System.out.print("\n");
                   
           Scanner scan = new Scanner(System.in);
           System.out.print("Buchstabe: ");
           String s = scan.next();
           
            //HIER AUSGABE DES JEWEILIGEN INDEXES
           
           for (int i=0;i<a.length;i++){
        	   if (s.charAt(0) == (a[i])){System.out.print("Ein "+s+" befindet sich an Stelle: "+i+"des Arrays.\n");}
           }
                 
        }
         
    }
 
Zuletzt bearbeitet:

Zurück
Oben