(char) Array einlesen

Diskutiere (char) Array einlesen im Java Basics - Anfänger-Themen Bereich.
C

Crawlix

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
 
J

JustNobody

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.
 
C

Crawlix

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();

}
 
C

Crawlix

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...
 
Tarrew

Tarrew

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));
 
C

Crawlix

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]
 
Tarrew

Tarrew

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 ? ", " : ""));
        }
 
C

Crawlix

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?
 
Tarrew

Tarrew

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[...];
        }
 
Thema: 

(char) Array einlesen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben