Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Was ist das denn für ein Array? Strings?
Sprich musst du die Zahlen erkennen und in ints umwandeln?
Gibt es Zahlen größer 9?
Gibt es eine 1 oder steht dann da einfach nur der Buchstabe?
Was ist an der Verwendung von Scanner in dem Fall denn so schlimm?
Ich würde auf die Schnelle entweder nextInt und next() mit einem Pattern für einzelne chars, oder direkt nur next() mit regulären Ausdrücken verwenden.
Was ich viel weniger verstehe ist, wie das Programm an sich funktionieren soll,
irgendwo muss er ja mal festlegen wieviele Einträge in sein Array passen sollen und welchen Typ es hat.
Auch könnte die Eingabe aktuell entweder so aussehen:
3
f
5
g
oder
3f5g
(Einzeln eingegeben oder als Gesamtstring).
Gruß
Scanner sc = new Scanner (System.in);
String input = sc.nextLine();
Dann stellt sich natürlich die Frage ob du von korrekten Eingaben ausgehen kannst, falls nicht musst du irgendwo einen Überprüfung einfügen.
Jetzt könntest du den String den du eingelesen hast char für char durchgehen (und ggf. auf Gültigkeit prüfen).
Wenn es dann wirklich Arrays und keine Listen sein dürfen musst du entweder zuerst die Gesamtlänge ausrechnen, oder du kopierst dein bestehendes Array öfter in ein größeres Array und füllst dieses mit den entsprechenden Zeichen auf.
Weil Du sofort eine Exception bekommst, wenn die Eingabe nicht 100% den Erwartungen entspricht, wobei die Klasse selbst noch falsche Erwartungen fördert. Hatten wir schon oft genug hier...
Vielleicht solltest du dir nochmal die basics anschauen...
Die Größe des Arrays hat nichts mit einer Größe des Inhalts zu tun, sondern gibt nur die Anzahl der Felder in dem Array an. Also brauchst du ein Array der Größe Anzahl der Elemente-1.
Mein Ansatz war der eher erklären zu wollen, dass man die Größe eines Arrays in den eckigen Klammern angibt und dann diese besage Zahl in die Klammern schreiben muss, um ein passendes Array zu erzeugen.
Mein Ansatz war der eher erklären zu wollen, dass man die Größe eines Arrays in den eckigen Klammern angibt und dann diese besage Zahl in die Klammern schreiben muss, um ein passendes Array zu erzeugen.
Wenn man von einer korrekten Ausgabe ausgehen kann wird das ganze ziemlich leicht:
Eingabe als char-Array:
Java:
Scanner sc = new Scanner(System.in);
char[] line = sc.next().toCharArray();
Die Ergebnislänge bekommt man dann einfach indem man in 2er-Schritten über das Array iteriert
und jeweils die Zahlen aufsummiert (von char zu int geht recht einfach: x = 'x' - 48, vorrausgesetzt x ist eine Zahl zwischen 0 und 9).
Dann legt man sich sein Ergebnisarray an (char oder String, char bietet sich an) und iteriert wieder in 2er Schritten über die Eingabe.
Die Zahlen nimmt man dieses mal nicht für eine summe, sondern füttert damit eine for-Schleife die x mal den aktuellen char in das Ergebnisarray schreibt (hier lohnt sich z.B. ein int für die aktuelle Position, den man außerhalb der Schleifen hochzählt).