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

spoj TABLICA - Tablica

Object Storage Arubacloud
+1 głos
211 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 (269,590 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 (269,590 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ź 455 wizyt
0 głosów
1 odpowiedź 580 wizyt
pytanie zadane 21 sierpnia 2019 w C i C++ przez cupoforanges Początkujący (380 p.)
0 głosów
1 odpowiedź 595 wizyt
pytanie zadane 11 sierpnia 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...