• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

spoj TABLICA - Tablica

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
381 wizyt
pytanie zadane 18 lipca 2022 w Java przez Ada3141592654 Początkujący (270 p.)

Hej,

Spoj odrzuca moją odpowiedź mimo tego, że mój program zwraca poprawne wyniki. Wydaję mi się, że wiem na czym może polegać problem(nadal nie wiem natomiast jak go rozwiązać). Otóż wprowadzam dane wejściowe, wyświetla się wynik działania programu i po kliknięciu enter wyświetla mi się taki bład:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""

więc muszę ewentualne następne dane wprowadzać w tej samej linijce co wypis danych wyjściowych, wtedy działa poprawnie. Ewentualnie mogłam też źle zrozumieć polecenie. Proszę o jakieś wskazówki.

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextLine()) {
            String string = scanner.nextLine();
            String[] strings = string.split(" ");
            int n = strings.length;
            int[] array = new int[n];
            for(int i=0; i<n; i++) {
                array[i] = Integer.parseInt(strings[i]);
            }
            for(int j=0; j<n/2; j++) {
                int pom=array[j];
                array[j]=Integer.parseInt(strings[n-(j+1)]);
                array[n-(j+1)]=pom;
            }
            for(int z=0; z<n; z++) {
                System.out.print(array[z] + " ");
            }
        }
    }

 

1 odpowiedź

0 głosów
odpowiedź 18 lipca 2022 przez Wiciorny Ekspert (278,710 p.)

Według nextLine()javadoc:

Przesuwa ten skaner poza bieżący wiersz i zwraca dane wejściowe, które zostały pominięte. Ta metoda zwraca resztę bieżącego wiersza, z wyłączeniem jakiegokolwiek separatora wiersza na końcu. Pozycja jest ustawiona na początek następnej linii.

Generalnie problem polega na tym, ze wczytujesz skaner - podajesz mu enter, a zadasz aby ten enter był parsowany

Wyjątek zostanie rzucony w linii Integer.parseInt(strings[i]);. Powodem, dla którego zostanie wyrzucony wyjątek, jest to, że odczytane dane wejściowe nie są liczbą, jest to pewnie pusta linia, lub coś innego, wyrzuci NumberFormatException.

1
komentarz 18 lipca 2022 przez Ada3141592654 Początkujący (270 p.)
Obsłużyłam ten wyjątek, ale nadal mi nie chce przyjąć odpowiedzi
komentarz 18 lipca 2022 przez Ada3141592654 Początkujący (270 p.)
już działa! okazało się, że pętla while nie była potrzebna, bo dane wejściowe miały być wprowadzone tylko raz, co wynika z treści zadania. Dziękuję za pomoc!
komentarz 18 lipca 2022 przez Wiciorny Ekspert (278,710 p.)
polecam skorzystać z Stream Buffer'a w tego typu rozwiazaniach, albo StringTokenizera jako odczyt, wtedy liczby wczytane po spacji np, mozna przekonwertować na tokeny przez co unika się regexów :) nadmiarowo
komentarz 19 lipca 2022 przez Ada3141592654 Początkujący (270 p.)
oki, musze w koncu poczytac o tym..

Podobne pytania

0 głosów
1 odpowiedź 728 wizyt
0 głosów
1 odpowiedź 829 wizyt
pytanie zadane 21 sierpnia 2019 w C i C++ przez cupoforanges Początkujący (380 p.)
0 głosów
1 odpowiedź 744 wizyt
pytanie zadane 11 sierpnia 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)

93,189 zapytań

142,204 odpowiedzi

322,028 komentarzy

62,517 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...