NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 5 - Načítání hodnot z konzole a parsování v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Atrament
Člen
Avatar
Odpovídá na Ján Jendruš
Atrament:28.12.2024 14:36

Tam kam ti ukazuje ta červená šipka na druhém obrázku napiš první číslo a zmáčkni Enter. Dál už na to určitě přijdeš sám😃

 
Odpovědět
28.12.2024 14:36
Avatar
Odpovídá na Atrament
Ján Jendruš :28.12.2024 15:14

dakujem...v momente ako som to odoslal, tak mi to doplo :D ...ale aj tak dakujem 👍 ... som uplny zaciatocnik, tak niekedy sa zaseknme na banalnej veci a ucim sa popritom este aj anglicky ....diiik

 
Odpovědět
28.12.2024 15:14
Avatar
Zuzana Bakonyiová:31.12.2024 18:22

je tu strane slabo vysvetlene vsetko, kedze je to kurz pre zaciatocnikov, ma tu byt vysvetlene vsetko od zaciatku

 
Odpovědět
31.12.2024 18:22
Avatar
Martin Spišák:6. ledna 23:10

Bohuzial, chyba lepsi popis krokov, preco co robime.
Nakolko som zaciatocnik som v niektorich bodoch strateny

 
Odpovědět
6. ledna 23:10
Avatar
Odpovídá na Atrament
Bolot Ryskulov:9. ledna 11:22

Děkuji, taky jsem se s tím dost dlouho trápil.

 
Odpovědět
9. ledna 11:22
Avatar
Jan Hozlar
Člen
Avatar
Jan Hozlar:19. ledna 13:05

V zivote som neprogramoval a nechapem uplnym zakladom, kopiroval som kod z tych programov u seba .. funguju .. ale nechapem ze preco.Po tychto 4 dieloch by som nedokazal ani prvy "Hello Word" program. Stale mam pocit ze ste preskocili uplne zaklady.

 
Odpovědět
19. ledna 13:05
Avatar
Miroslav Staněk:6. února 20:59

Jako naprostý začátečník i po důkladném pročtení prvních 4 kapitol nemám poci, že bych chápal jak kód, který píšu, vlastně pořádně funguje. Chybí mi detailní popis konkrétních kroků, musím často zkoušet pokus/omyl, abych se dobral výsledku. Například metoda nextInt(), která je zmíněna ke konci a j očividně důležitá není dostatečně dobře vysvětlena.

 
Odpovědět
6. února 20:59
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Miroslav Staněk
DarkCoder:7. února 11:28
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Zadejte prvni cislo: ");
        int number = scanner.nextInt();
        System.out.println(number * 2);

        // nextInt po nextInt
        System.out.print("Zadejte druhe cislo: ");
        int number2 = scanner.nextInt();
        System.out.println(number2 * 2);

        scanner.nextLine(); // Nutné, aby řádek XXX prázdný řetězec!!!

        // nextLine po nextInt
        System.out.print("Zadejte treti cislo: ");
        String str = scanner.nextLine().trim(); // řádek XXX
        int number3 = Integer.parseInt(str);
        System.out.println(number3 * 2);

        // nextLine po nextLine
        System.out.print("Zadejte ctvrte cislo: ");
        String str2 = scanner.nextLine().trim();
        int number4 = Integer.parseInt(str2);
        System.out.println(number4 * 2);

        // nextInt po nextLine
        System.out.print("Zadejte pate cislo: ");
        int number5 = scanner.nextInt();
        System.out.println(number5 * 2);

        scanner.close();
    }
}

Problématika vstupu je celkově mnohem složitější. Uživatel může zadávat bílé znaky kolem čísel a s tím je třeba se rovněž vypořádat.

Metoda nextInt přečte a zahazuje předchozí bílé znaky, vrací delé číslo a po jejím volání nechává ve vstupním bufferu znak nového řádku /n. Pokud po ni následuje znovu metoda nextInt, tak je vše v pořádku neboť se se znakem nového řádku ve vstupním bufferu dokáže vypořádat.

Metoda nextLine vrací řetězec ze kterého je třeba získat dané číslo. Pokud ale narazí na znak nového řádku dříve, vrátí prázdný řetězec a nedojde ke správnému převodu na číslo. Dojde k chybě. Je tedy nutné tento znak nového řádku ze vstupního bufferu odstranit. Viz řádek scanner.nextLine(). metoda nextLine() neponechává ve vstupním bufferu znak nového řádku.

Pokud ale uživatel zadává před či po čísle bílé znaky, je potřeba je u volání metody nextLine odstanit. K tomu slouží metoda trim která z řetězce před a po tyto bílé znaky odstraňuje.

Experimentuj s výše uvedeným příkladem ve kterém jsou všechny možnosti vazeb načítacích metod. Odstraňuj trimy popřípadě i řádek s scanner.nextLine, zadávej čísla a následně enter i přidávej mezery tabulátory před či po do vstupu. Na tom uvidíš jak se co chová a co je nutné pro to aby program fungoval správně.

Odpovědět
7. února 11:28
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Kristýna Bímanová:22. února 20:46

Ahoj. Čtvrtá lekce a jsem úplně v háji. Jakto, že package v prvním vzorovém kódu je "papousek" a ve druhém "onlineapp"? Máme založit nový, nebo mi tam něco uniklo? Kód pro papouška mi nefunguje vůbec, pořád mi to hází "class Papousek is public, should be declared in a file named Papousek.java" Jako absolutní začátečník mám pocit, že jsme přeskočili deset lekcí, a ať do toho čučím jak chci, nevím kde je chyba (vzhledem k tomu, že nevím, co vlastně hledám)

 
Odpovědět
22. února 20:46
Avatar
Odpovídá na Kristýna Bímanová
Kristýna Bímanová:22. února 20:53

Tak hned odpovím sama sobě: chyba byla skutečně v názvu třídy, která se musí shodovat s názvem projektu. Možná pitomost, ale z textu to není patrné :( Radost z nalezení zádrhelu veliká, ale dvacet minut pryč...

 
Odpovědět
22. února 20:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 117.