Brauno
Cadet 2nd Year
- Registriert
- Juni 2018
- Beiträge
- 28
Hallo, ich habe ein Problem mit dem Scanner. Undzwar bleibt er immer "hängen" und das Programm stopt ander der Stelle:
ein.add(Integer.parseInt(sc2.next()));
Die Methode soll aus einer Linie verschiedene Ints auslesen und diese als Array ausgeben. Bei falscher Eingabe soll die Methode noch
einmal ausgeführt werden
Der gesamte Code:
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
public class test {
//Aufruf der Methode
public static void main(String[]args) {
int[] array = ScanNext("eingabe: ");
for(int i = 0; i < array[0]; i++) {
System.out.println(array);
}
}
public static int[] ScanNext(String out) {
//Variablen
System.out.println(out);
Scanner sc2 = new Scanner(System.in).useDelimiter("\\,");
ArrayList<Integer> ein = new ArrayList<Integer>();
//Eingabe
while (sc2.hasNext()) {
try {
ein.add(Integer.parseInt(sc2.next()));
}catch(InputMismatchException e) { //falsche Eingabe
return ScanNext("Gebe die Sitzplatznummern bitte so ein: x, x2, ..., xn |: ");
}catch(NumberFormatException e) {
return ScanNext("Gebe die Sitzplatznummern bitte so ein: x, x2, ..., xn |: ");
}
}
sc2.close();
//Kovertierung von Arraylist to Array
int[] outA = new int[ein.size()];
for(int g = 0; g < ein.size(); g++) {
outA[g] = ein.get(g);
}
return outA;
}
}
Bin noch nicht lange bei java unterwegs, vllt bin ich auch einfach nur blind.
ein.add(Integer.parseInt(sc2.next()));
Die Methode soll aus einer Linie verschiedene Ints auslesen und diese als Array ausgeben. Bei falscher Eingabe soll die Methode noch
einmal ausgeführt werden
Der gesamte Code:
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
public class test {
//Aufruf der Methode
public static void main(String[]args) {
int[] array = ScanNext("eingabe: ");
for(int i = 0; i < array[0]; i++) {
System.out.println(array);
}
}
public static int[] ScanNext(String out) {
//Variablen
System.out.println(out);
Scanner sc2 = new Scanner(System.in).useDelimiter("\\,");
ArrayList<Integer> ein = new ArrayList<Integer>();
//Eingabe
while (sc2.hasNext()) {
try {
ein.add(Integer.parseInt(sc2.next()));
}catch(InputMismatchException e) { //falsche Eingabe
return ScanNext("Gebe die Sitzplatznummern bitte so ein: x, x2, ..., xn |: ");
}catch(NumberFormatException e) {
return ScanNext("Gebe die Sitzplatznummern bitte so ein: x, x2, ..., xn |: ");
}
}
sc2.close();
//Kovertierung von Arraylist to Array
int[] outA = new int[ein.size()];
for(int g = 0; g < ein.size(); g++) {
outA[g] = ein.get(g);
}
return outA;
}
}
Bin noch nicht lange bei java unterwegs, vllt bin ich auch einfach nur blind.