Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 3. diel - Premenné a typový systém v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Libor Ripper :8.8.2017 8:23

Baví mě to !

Odpovedať
Je to radost mít radost
Avatar
dommynyk
Člen
Avatar
dommynyk:8.8.2017 11:00

Scanner qa = new Scanner (System.in);
System.out.prin­tln("Zadaj mi cislo a ja ho zdvojnasobim :)");
int cislo = qa.nextInt();
System.out.prin­tln(cislo * 2 + " Cislo je zdvojnasobene!!");

netreba tam ziadne parsovanie staci : .nextInt()

Odpovedať
_________________________
Avatar
Odpovedá na dommynyk
Filip (animátor/programator):11.8.2017 20:59

Jj presne tak. Osobne niesom žiaden expert ale neviem prečo to tak v článku je alebo aký je v tom rozdiel. Bol by som rád ak by mi to niekto vysvetlil.

Odpovedať
Nikdy sa nevzdávaj a choď si za svojim snom.......
Avatar
Atrament
Člen
Avatar
Odpovedá na Filip (animátor/programator)
Atrament:11.8.2017 22:11

Použití nextInt() sebou nese ještě povinnost ošetřit přebývající znak konce řádku, který nextInt() ve streamu nechává. Takže pokud se pokusíš načíst od uživatele číslo, a hned pak se ho zeptáš na nějaké slovo třeba takto:

System.out.print("Zadej číslo:");
int cislo = sc.nextInt();
System.out.print("Zadej slovo:");
String slovo = sc.nextLine();

tak zjistíš, že k vložení slova se jako uživatel vůbec nedostaneš, ono to jakoby rovnou odentruje za tebe - to je ten přebývající znak nového řádku z předchozího volání nextInt(). Aby to fungovalo správně, musel bys po volání nextInt() zavolat ještě extra nextLine():

int cislo = sc.nextInt();
sc.nextLine();

což je otrava, snadno se na to zapomíná a prostě to dělá problémy.

Navíc zavolání nextLine() a jeho následné parsování na Integer je paradoxně o něco málo efektivnější než použití nextInt(). Při načítání dat od uživatele to nehraje roli, protože tam nejvíce zdržuje ten uživatel, ale kdybys načítal data třeba z nějakého souboru a bylo by jich fakt hodně, tak už by se to projevilo.

Avatar
Odpovedá na Atrament
Filip (animátor/programator):11.8.2017 22:15

Ok ďakujem ti za odpoveď

Odpovedať
Nikdy sa nevzdávaj a choď si za svojim snom.......
Avatar
Jan Chalupa
Člen
Avatar
Jan Chalupa:12.9.2017 12:58

Ahoj, jeden malý dotaz. Při výstupu textu, který zadá uživatel mám rozhozenou diakritiku, pracuji na Mac OS. Co mám udělat proto, aby to bylo v pořádku. Když zadám text na tvrdo do proměnné tak je to v pohodě.

Avatar
Odpovedá na Jan Chalupa
Zdeněk Zemek:12.10.2017 11:28

Ahoj, tenhle problém nemám a taky pracuju na Macu nebo linuxu. To Ti ale nepomůže že :-). Chtěl jsem říct, že bych zkusil načíst vstup v jiným kodování - Mac používá defaultně UTF-8, tak bych to napsal takto:
Scanner sc = new Scanner(System.in, "UTF-8");

Třeba to pomůže :-)

Avatar
Vojtěch Kačerovský:4.11.2017 17:43

Já jsem vždycky tak šťastný když se mi z toho něco povede nebo kód trochu upravím a on dělá to co chci! :-)

Avatar
Michal Vícha:7.1.2018 19:49

Exception in thread "main" java.lang.Run­timeException: Uncompilable source code - cannot find symbol
symbol: class scanner
location: class projekt2.Papousek
at projekt2.Papou­sek.main(Papou­sek.java:15)
C:\Users\admn\Ap­pData\Local\Net­Beans\Cache\8­.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)

... Scanner je udajně invalid :/

Avatar
vajkuba1234
Člen
Avatar
Odpovedá na Michal Vícha
vajkuba1234:7.1.2018 20:52

Ukaz svuj kod.

Odpovedať
No hope, no future, JUST WAR!
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 395.