Próbuję uzyskać dane wejściowe ze skanera i przypisać wartość do tablicy ciągów. Pętla musi działać 3 razy, ale zajmuje tylko dwa wejścia. Czy ktoś może wyjaśnić, dlaczego to nie bierze 3 wejść i nie wyświetla tego samego.
import java.util.Arrays;
import java.util.Scanner;
public class DimentionalArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int size = sc.nextInt(); // ex, if size is 3
String[] str = new String[size];
for (int i = 0; i < str.length; i++) {
str[i] = sc.nextLine();
}
Arrays.stream(str).forEach(e -> {System.out.println(e);});
}
}
Na przykład. moje dane wejściowe są
3 //size 1 2 // 1st input 3 4 //2nd input 4 5 // 3rd input
Ale nie czyta wejścia i zamyka się po odczytaniu drugiego wejścia (3 4). Czy ktoś może wyjaśnić, dlaczego nie czyta trzeciego elementu.
2 odpowiedzi
Poprostu dodaj
sc.nextLine();
Po int size = sc.nextInt ();
Jeśli jesteś zainteresowany tym, co się dzieje, zajrzyj do tego wydania:
Skaner pomija nextLine () po użyciu next () lub nextFoo ()?
Podobne pytania
Powiązane pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].