(char) Array einlesen

Hallo,

ich habe ein Problem bei einem char array, welches eine Länge von "user input" hat.
Mein Problem dabei ist, dass ich auch mit google keinen weg finde der funktioniert, die Werte in einer Schleife einzulesen.... (mit Scanner).
Jemand eine Idee?

Danke
 
Was hast Du denn probiert? Und was hat nicht geklappt?

Erfahrungsgemäß scheitert es oft an der Nutzung des Scanners, denn der hat eine gewisse Verhaltensweise, die man erst einmal verstanden haben muss. Wenn Du deine Versuche mitteilst, dann können wir die vorhandenen Probleme erläutern und Lösungsmöglichkeiten aufzeigen.
 
HIER MEIN CODE


System.out.println("Geben sie die Länge des Arrays ein");

Scanner scan = new Scanner(System.in);
i = scan.nextInt();

Scanner scan2 = new Scanner(System.in);

char [] werte = new char ;
char [] reverse = new char;

for(int a = 0; a < i; a++)
{
System.out.println("Geben sie einen Buchstaben ein: ");
werte[a] = scan2.hasNext().toCharArray();

}
 
Was hast Du denn probiert? Und was hat nicht geklappt?

Erfahrungsgemäß scheitert es oft an der Nutzung des Scanners, denn der hat eine gewisse Verhaltensweise, die man erst einmal verstanden haben muss. Wenn Du deine Versuche mitteilst, dann können wir die vorhandenen Probleme erläutern und Lösungsmöglichkeiten aufzeigen.


unten...
 
Also erstmal bleibst du besser bei einem Scanner pro Inputstream.
Dann ist es so, dass die Methode "hasNext" ein boolean zurückliefert. Darauf kannst du nicht die Methode "toCharArray" anwenden.

Probiers mal so:
Java:
System.out.println("Geben sie die Länge des Arrays ein");

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();

char [] werte = new char[i];
char [] reverse = new char[i];

for(int a = 0; a < i; a++)
{
    System.out.println("Geben sie einen Buchstaben ein: ");
    werte[a] = scan.next().charAt(0);
}
System.out.println(Arrays.toString(werte));
 
Also erstmal bleibst du besser bei einem Scanner pro Inputstream.
Dann ist es so, dass die Methode "hasNext" ein boolean zurückliefert. Darauf kannst du nicht die Methode "toCharArray" anwenden.

Probiers mal so:
Java:
System.out.println("Geben sie die Länge des Arrays ein");

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();

char [] werte = new char[i];
char [] reverse = new char[i];

for(int a = 0; a < i; a++)
{
    System.out.println("Geben sie einen Buchstaben ein: ");
    werte[a] = scan.next().charAt(0);
}
System.out.println(Arrays.toString(werte));
Also erstmal bleibst du besser bei einem Scanner pro Inputstream.
Dann ist es so, dass die Methode "hasNext" ein boolean zurückliefert. Darauf kannst du nicht die Methode "toCharArray" anwenden.

Probiers mal so:
Java:
System.out.println("Geben sie die Länge des Arrays ein");

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();

char [] werte = new char[i];
char [] reverse = new char[i];

for(int a = 0; a < i; a++)
{
    System.out.println("Geben sie einen Buchstaben ein: ");
    werte[a] = scan.next().charAt(0);
}
System.out.println(Arrays.toString(werte));



Kann man die Ausgabe dann auch ohne die [] Klammern machen? Die Ausgabe sieht nämlich so aus:

z.b: [a, b, c, d, e]
 
Naja, das ist nur die Darstellung der Arrays.toString Methode. Ausgeben kannst du dir das Ganze wie du möchtest.
Einfach in einer Schleife übers Array laufen und mit Komma getrennt ausgeben ;)
Java:
        for (int k = 0; k < werte.length; k++) {
            System.out.print(werte[k] + (k < werte.length - 1 ? ", " : ""));
        }
 
Naja, das ist nur die Darstellung der Arrays.toString Methode. Ausgeben kannst du dir das Ganze wie du möchtest.
Einfach in einer Schleife übers Array laufen und mit Komma getrennt ausgeben ;)
Java:
        for (int k = 0; k < werte.length; k++) {
            System.out.print(werte[k] + (k < werte.length - 1 ? ", " : ""));
        }


Super okay, klappt auch mit syso(werte[a])

Wie kann ich denn die Werte des arrays jetzt in ein neues array schreiben- aber umgekehrt?
 
Du läufst wieder durch dein Array und musst du dir nur überlegen an welche Stelle du deine Elemente schreibst. Das erste Element an die letzte Stelle im neuen Array, das zweite Element an die zweitletzte Stelle etc.
Java:
for (int j = 0; j < werte.length; j++) {
    reverse[...] = werte[j];
}
Das Eintragen des richtigen Index überlasse ich mal dir ;)

Oder direkt mit zwei Indizes arbeiten:
Java:
        for (int j = 0, k = werte.length - 1; j < werte.length; j++, k--) {
            reverse[...] = werte[...];
        }
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben