Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij halloweenské akce 80% výuky zdarma!
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
Halloween BF

Lekce 3 - Proměnné, typový systém a parsování

Z minulé lekce, NetBeans IDE a první konzolová aplikace, již umíme pracovat s NetBeans a vytvořit konzolovou aplikaci.

Dnes se podíváme na tzv. typový systém, ukážeme si základní datové typy a práci s proměnnými. Výsledkem budou 4 jednoduché programy včetně kalkulačky.

Proměnné

Než začneme řešit datové typy, pojďme se shodnout na tom, co je to proměnná (programátoři mi teď jistě odpustí zbytečné vysvětlování). Určitě znáte z matematiky proměnnou (např. x), do které jsme si mohli uložit nějakou hodnotu, nejčastěji číslo. Proměnná je v informatice naprosto to samé, je to místo v paměti počítače, kam si můžeme uložit nějaká data (jméno uživatele, aktuální čas nebo databázi článků). Toto místo má podle typu proměnné také vyhrazenou určitou velikost, kterou proměnná nesmí přesahnout (např. číslo nesmí být větší než 2 147 483 647).

Proměnná má vždy nějaký datový typ, může to být číslo, znak, text a podobně, záleží na tom, k čemu ji chceme používat. Většinou musíme před prací s proměnnou tuto proměnnou nejdříve tzv. deklarovat, čili říci jazyku jak se bude jmenovat a jakého datového typu bude (jaký v ní bude obsah). Jazyk ji v paměti založí a teprve potom s ní můžeme pracovat. Podle datového typu proměnné si ji jazyk dokáže z paměti načíst, modifikovat, případně ji v paměti založit. O každém datovém typu jazyk ví, kolik v paměti zabírá místa a jak s tímto kusem paměti pracovat.

Typový systém

Existují dva základní typové systémy: statický a dynamický:

  • Dynamický typový systém nás plně odstiňuje od toho, že proměnná má vůbec nějaký datový typ. Ona ho samozřejmě vnitřně má, ale jazyk to nedává najevo. Dynamické typování jde mnohdy tak daleko, že proměnné nemusíme ani deklarovat, jakmile do nějaké proměnné něco uložíme a jazyk zjistí, že nebyla nikdy deklarována, sám ji založí. Do té samé proměnné můžeme ukládat text, potom objekt uživatele a potom desetinné číslo. Jazyk se s tím sám popere a vnitřně automaticky mění datový typ. V těchto jazycích jde vývoj rychleji díky menšímu množství kódu, zástupci jsou např. PHP nebo Ruby.
  • Statický typový systém naopak striktně vyžaduje definovat typ proměnné a tento typ je dále neměnný. Jakmile proměnnou jednou deklarujeme, není možné její datový typ změnit. Jakmile se do textového řetězce pokusíme uložit objekt uživatel, dostaneme vynadáno.

Java je staticky typovaný jazyk, všechny proměnné musíme nejprve deklarovat s jejich datovým typem. Nevýhodou je, že díky deklaracím je zdrojový kód poněkud objemnější a vývoj pomalejší. Obrovskou výhodou však je, že nám kompiler před spuštěním zkontroluje, zda všechny datové typy sedí. Dynamické typování sice vypadá jako výhodné, ale zdrojový kód není možné automaticky kontrolovat a když někde očekáváme objekt uživatel a přijde nám tam místo toho desetinné číslo, odhalí se chyba až za běhu a interpret program shodí. Naopak Java nám nedovolí program ani zkompilovat a na chybu nás upozorní (to je další výhoda kompilace).

Pojďme si nyní něco naprogramovat, ať si nabyté znalosti trochu osvojíme, s teorií budeme pokračovat až příště. Řekněme si nyní tři základní datové typy:

  • Celá čísla: int
  • Desetinná čísla: float
  • Textový řetězec: String

String píšeme s velkým písmenem na začátku, časem se dozvíme proč.

Program vypisující proměnnou

Zkusíme si nadeklarovat celočíselnou proměnnou a, dosadit do ní číslo 56 a její obsah vypsat do konzole. Založte si nový projekt, pojmenujte ho Vypis (i ke všem dalším příkladům si vždy založte nový projekt). Kód samozřejmě píšeme do těla metody main() (jako minule), čili ji zde již nebudu opisovat.

int a;
a = 56;
System.out.println(a);

První příkaz nám nadeklaruje novou proměnnou a datového typu int, proměnná tedy bude sloužit pro ukládání celých čísel. Druhý příkaz provádí přiřazení do proměnné, slouží k tomu operátor "rovná se". Poslední příkaz je nám známý, vypíše do konzole obsah proměnné a. Konzole je chytrá a umí vypsat i číselné proměnné.

Konzolová aplikace
56

Pro desetinnou proměnnou by kód vypadal takto:

float a;
a = 56.6F;
System.out.println(a);
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Je to téměř stejné jako s celočíselným. Jako desetinný oddělovač používáme tečku a na konci desetinného čísla je nutné zadat tzv. suffix F, tím říkáme, že se jedná o float.

Deklarace a inicializace více proměnných najednou

Deklaraci i přiřazení je možné řetězit, což se dá použít, pokud chceme deklarovat více proměnných stejného typu a nebo jim nastavit stejnou hodnotu. Nemusíme pak psát:

int a;
int b;
a = 0;
b = 0;

ale můžeme zkráceně napsat jen:

int a, b; // deklarujeme dvě proměnné typu int najednou
a = b = 0; // a najednou jim oběma přiřadíme nulu

Program Papoušek

Minulý program byl poněkud nudný, zkusme nějak reagovat na vstup od uživatele. Napíšeme program papoušek, který bude dvakrát opakovat to, co uživatel napsal. Ještě jsme nezkoušeli z konzole nic načítat. Slouží k tomu metoda nextLine(), která uživateli umožní zadat do konzole řádku textu a nám vrátí zadaný textový řetězec. Abychom mohli z konzole načítat, založíme si nový projekt s názvem Papousek a jeho kód upravíme tak, aby vypadal takto:

package papousek;

import java.util.Scanner;

public class Papousek {

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in, "Windows-1250");

    }
}

Pro názornost jsem vymazal šedou dokumentaci, ale klidně si ji tam nechte. Změna spočívá v importování java.util.Scanner, což nám umožňuje přístup k metodám pro vstup z konzole. Konečně ten dlouhý řádek na začátku metody nedělá nic jiného, než že nám vytvoří proměnnou sc, na které můžeme volat onu metodu nextLine(), která načte z konzole další řetězec. Vysvětlit si ho by bylo nyní příliš komplikované, berte ho jako že tam je, časem ho pochopíme.

Pokud budete potřebovat v kterémkoli ze svých programů načíst text z konzole, je nutné program takto upravit a přidat proměnnou sc!

Nyní se přesuňme k samotnému kódu programu a upravme obsah metody main() do následující podoby:

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.println("Napiš něco: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.println(vystup);

To už je trochu zábavnější :) První řádek jsme ji již vysvětlili výše, další dva řádky jsou jasné (vypisují text). Dále deklarujeme textový řetězec vstup. Do vstup se přiřadí hodnota z metody nextLine() na konzoli, tedy to, co uživatel zadal. Pro výstup si pro názornost zakládáme další proměnnou typu textový řetězec. Zajímavé je, jak do vystup přiřadíme, tam využíváme tzv. konkatenace (spojování) řetězců. Pomocí operátoru + totiž můžeme spojit několik textových řetězců do jednoho a je jedno, jestli je řetězec v proměnné nebo je explicitně zadán v uvozovkách ve zdrojovém kódu. Do proměnné tedy přiřadíme vstup, dále čárku, znovu vstup a poté vykřičník. Proměnnou vypíšeme a skončíme.

Konzolová aplikace
Ahoj, jsem virtuální papoušek Lóra, rád opakuji!
Napiš něco:
Nazdar ptáku
Nazdar ptáku, Nazdar ptáku!

Do proměnné můžeme přiřazovat již v její deklaraci, můžeme tedy nahradit:

String vstup;
vstup = sc.nextLine();

za

String vstup = sc.nextLine();

Program by šel zkrátit ještě více v mnoha ohledech, ale obecně je lepší používat více proměnných a dodržovat přehlednost, než psát co nejkratší kód a po měsíci zapomenout, jak vůbec funguje.

Program zdvojnásobovač

Zdvojnásobovač si vyžádá na vstupu číslo a to poté zdvojnásobí a vypíše. Asi bychom s dosavadními znalostmi napsali něco takového:

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Zadejte číslo k zdvojnásobení:");
int a = sc.nextLine();
a = a * 2;
System.out.println(a);

Všimněte si zdvojnásobení čísla a, které jsme provedli pomocí přiřazení. Java nám nyní vyhubuje a podtrhne řádek, ve kterém se snažíme hodnotu z konzole dostat do proměnné typu int. Narážíme na typovou kontrolu, konkrétně nám nextLine() vrací String a my se ho snažíme uložit do proměnné typu int. Budeme ho potřebovat tzv. naparsovat.

Parsování

Parsováním se myslí převod z textové podoby na nějaký specifický typ, např. číslo. Mnoho datových typů má v Javě již připraveny metody k parsování, pokud budeme chtít naparsovat např. int ze Stringu, budeme postupovat takto:

String s = "56";
int a = Integer.parseInt(s);

Metoda parseInt() se volá na třídě Integer, bere jako parametr textový řetězec a vrátí číslo. Využijeme této znalosti v našem programu:

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Zadejte číslo k zdvojnásobení:");
String s = sc.nextLine();
int a = Integer.parseInt(s);
a = a * 2;
System.out.println(a);

Nejprve si text z konzole uložíme do textového řetězce s. Do celočíselné proměnné a poté uložíme číselnou hodnotu řetězce s. Dále hodnotu v a zdvojnásobíme a vypíšeme do konzole.

Konzolová aplikace
Zadejte číslo k zdvojnásobení:
1024
2048

Parsování se samozřejmě nemusí povést, když bude v textu místo čísla např. slovo, ale tento případ zatím nebudeme ošetřovat.

Na skeneru existuje i metoda nextInt(), u které by se mohlo na první pohled zdát, že nám vrátí již naparsované číslo a tedy i ušetří práci. Ve skutečnosti tato metoda bohužel ponechá ve vstupu znak Enteru, kterým uživatel číslo potvrdil. Tento znak tam zůstane tak dlouho, dokud jej nenačtete z konzole spolu s dalším textem, což může způsobit neočekávané problémy ve vašich programech. Proto používejte ke čtení z konzole vždy metodu nextLine().

Jednoduchá kalkulačka

Ještě jsme nepracovali s desetinnými čísly, zkusme si napsat slibovanou kalkulačku. Bude velmi jednoduchá, na vstup přijdou dvě čísla, program poté vypíše výsledky pro sčítání, odčítání, násobení a dělení.

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Vítejte v kalkulačce");
System.out.println("Zadejte první číslo:");
float a = Float.parseFloat(sc.nextLine());
System.out.println("Zadejte druhé číslo:");
float b = Float.parseFloat(sc.nextLine());
float soucet = a + b;
float rozdil = a - b;
float soucin = a * b;
float podil = a / b;
System.out.println("Součet: " + soucet);
System.out.println("Rozdíl: " + rozdil);
System.out.println("Součin: " + soucin);
System.out.println("Podíl: " + podil);
System.out.println("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.");

Konzolová aplikace
Vítejte v kalkulačce
Zadejte první číslo:
3.14
Zadejte druhé číslo:
2.72
Součet: 5.86
Rozdíl: 0.42
Součin: 8.5408
Podíl: 1.15441176470588
Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.

Všimněte si dvou věcí. Zaprvé jsme zjednodušili parsování z konzole tak, abychom nepotřebovali Stringovou proměnnou, protože bychom ji stejně již poté nepoužili. Zadruhé na konci programu spojujeme řetězec s číslem pomocí znaménka plus. Java překvapivě nezahlásí chybu, ale provede tzv. implicitní konverzi a zavolá na čísle metodu Integer.toString() nebo přímo na typu String String.valueOf(). Kdyby tomu tak nebylo nebo jsme se dostali do situace, kdy potřebujeme převést cokoli na String, zavoláme metodu String.valueOf() a jako parametr ji dáme naši proměnnou. Java to v tomto případě udělala za nás, v podstatě vykoná:

System.out.println("Součet: " + String.valueOf(soucet));

Právě jsme se tedy naučili opak k parsování - převést cokoli do textové podoby.

Všechny programy máte samozřejmě opět v příloze, zkoušejte si vytvářet nějaké podobné, znalosti již k tomu máte :)

V následujícím cvičení, Řešené úlohy k 3. lekci Javy, si procvičíme nabyté zkušenosti z předchozích lekcí.


 

Stáhnout

Staženo 2965x (67.69 kB)
Aplikace je včetně zdrojových kódů v jazyce java

 

Předchozí článek
NetBeans IDE a první konzolová aplikace
Všechny články v sekci
Základní konstrukce jazyka Java
Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
138 hlasů
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn university Autor sítě se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity (24)

 

 

Komentáře

Avatar
smile
Neregistrovaný
Avatar
smile:1.6.2012 18:41

ještě k těm vstupům bych chtěl dodat, že existuje i příkaz System.in.read (proměnná);

 
Odpovědět
1.6.2012 18:41
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na smile
David Čápka:1.6.2012 18:47

Dělám především v C#, ale nikde jsem přes to neviděl načítat stringy. System.in zde obalíme Scannerem, který nám poté dá string, System.in vrací jen pole bytů ne?

Odpovědět
1.6.2012 18:47
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
smile
Neregistrovaný
Avatar
smile:1.6.2012 18:50

Nejsem si jistý, ale v Netbeansu jsem to zkoušel a kód to opravdu přečetlo, jenom mi program neběžel dál a hlavně in.read je metoda. u toho scaneru nevím.

 
Odpovědět
1.6.2012 18:50
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na smile
David Čápka:1.6.2012 22:05

Tak jsem to Googlil v manuálu, metoda read na System.in dokáže načíst pouze znak nebo pole znaků, musíš ho poté převést na String, takže žádná výhra. Ten Scanner mi přijde nejlepší. Ještě jde vytvořit instance System.Console a volat na ní readLine().

Odpovědět
1.6.2012 22:05
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Tomáš Zelina:11.6.2012 20:31

Neví někdo, čím by mohlo být způsobeno, že papoušek opakuje pouze první slovo? (i při spuštění verze stažené z těchto stránek)
Vypisuje to tohle:

run:
Ahoj, jmenuji se Lóra, a ráda opakuji
Napiš něco:
Lora je chytra!
Lora, Lora!
BUILD SUCCESSFUL (total time: 10 seconds)
Odpovědět
11.6.2012 20:31
Jakákoli chybná odpověď je v paralelním vesmíru správnou. Proto mám vždycky pravdu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomáš Zelina
David Čápka:11.6.2012 20:41

To je dost divné. Můžeš napsat verze Javy, operační systém a IDE?

Jinak můžeš zkusit scanner nahradit BinaryReaderem, viz. http://www.java-forums.org/…console.html

Odpovědět
11.6.2012 20:41
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomáš Zelina
David Čápka:11.6.2012 20:44

Tak jsem hledal a zkus volat sc.nextLine() namísto sc.next(). Mělo by to problém opravit. Pokud ano, upravím to i v tutoriálu.

Odpovědět
11.6.2012 20:44
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na David Čápka
Tomáš Zelina:11.6.2012 21:27

Volání sc.nextLine() nepomohlo, nahrazení scanneru BinaryReaderem vyhodilo error, ale po odkliknutí Run anyway to fungovalo dobře.

OS linux 32-bit (distro ubuntu) (možná tady bude problém), NetBeans 7.1.2, Sun java JDK 6.

Jinak díky za rady ;)

Odpovědět
11.6.2012 21:27
Jakákoli chybná odpověď je v paralelním vesmíru správnou. Proto mám vždycky pravdu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomáš Zelina
David Čápka:11.6.2012 21:55

U BR je nutné ještě ošetřit exceptions. Jinak nevím, čím by to mohlo být, opravdu divné, na Windows to funguje. Až budu mít možnost, zkusím to i na Ubuntu.

Odpovědět
11.6.2012 21:55
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na David Čápka
Tomáš Zelina:17.6.2012 9:16

Jak se teď na to dívám, tak byla chyba byla na mé straně, s sc.next() to sice nejde, ale po nahrazení sc.next() za sc.nextLine() to funguje správně :` Omlouvám se za zbytečné zmatky.

Odpovědět
17.6.2012 9:16
Jakákoli chybná odpověď je v paralelním vesmíru správnou. Proto mám vždycky pravdu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomáš Zelina
David Čápka:17.6.2012 9:32

V pohodě a díky za ozkoušení, upravíme to tu :)

Odpovědět
17.6.2012 9:32
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
erben15
Člen
Avatar
erben15:27.6.2012 21:14

ahoj u toho nextLine jsem to nahradil nextInt a taky funguje...

 
Odpovědět
27.6.2012 21:14
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na erben15
David Čápka:27.6.2012 21:29

Jo, ale chtěl jsem ukázat, jak se převádí mezi jednotlivými dat. typy. Také je obvyklejší, že na vstupu dostaneme jen string :)

Odpovědět
27.6.2012 21:29
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
cz-ko
Člen
Avatar
cz-ko:26.11.2012 1:27

Zdravím, hlásí mi to úplně nesmyslnou chybu a já nevím, co bych na ní mohla opravit :/ Přijde mi jako blbost, že by to bylo tím, že používám BlueJ...

System.out.prin­tln("Zadej první číslo:");
float a = Float.parseFlo­at(sc.nextLine());

"sc" se mi nahlásí jako chyba a nechce mě to pustit dál. Pomoooc ^^ :D

 
Odpovědět
26.11.2012 1:27
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na cz-ko
David Čápka:26.11.2012 14:38

Protože instanci sc nemáš vytvořenou, nahoru přidej:

Scanner sc = new Scanner(System.in, "Windows-1250");
Odpovědět
26.11.2012 14:38
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
jena
Neregistrovaný
Avatar
jena:26.11.2012 18:48

Ahoj, prosim, proc je v radku Scanner sc "Windows-1250"?
diky

 
Odpovědět
26.11.2012 18:48
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na jena
David Jančík:26.11.2012 19:04

Scanner slouží ke čtení z klávesnice (vstup uživatele). Windows-1250 udává ve kterém kódování se máš daný řetězec načítat. Windows-1250 je kódování s diakritikou, které se dost často používá v Česku.

Odpovědět
26.11.2012 19:04
Zapomeň, že je to nemožné a udělej to ;)
Avatar
eviel
Člen
Avatar
eviel:24.12.2012 20:06

Neviem prečo ale nejde mi vykonávať príkazy, stále to len načitava. To mám až tak pomalý pc? o_O :O

 
Odpovědět
24.12.2012 20:06
Avatar
Henzigo
Člen
Avatar
Odpovídá na eviel
Henzigo:28.1.2013 16:18

Čeká to na vykonání funkce .. v tvém případě nejspíše napsání čísla nebo textu

 
Odpovědět
28.1.2013 16:18
Avatar
pomník
Člen
Avatar
pomník:2.3.2013 23:50

Mohu se zeptat? Jestliže do kalkulačky zadám míst číslice písmeno da se nějak nastavit podmínka že by to ukončilo ten proces a napsalo to Napiš do proměnné A či B číslo a né písmeno ? Chtěl jsem napsat že by třeba float a !=#
System.out.prin­tln("Zadej číslo ne písmeno");

Editováno 2.3.2013 23:53
 
Odpovědět
2.3.2013 23:50
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na pomník
David Čápka:3.3.2013 7:07

To se dělá přes výjimky, na začátek je to zbytečně složité.

Odpovědět
3.3.2013 7:07
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
dan.knotek
Člen
Avatar
dan.knotek:8.3.2013 20:05

ahoj,děkuji ti moc si mi pomohl :-)

 
Odpovědět
8.3.2013 20:05
Avatar
uzivatel
Neregistrovaný
Avatar
uzivatel:21.4.2013 15:00

zdravim
skusam ten zvojnasobovac ale stale mi vyhadzuje chybove hlasenie
a to presne tu
String s = sc.nextLine();
to cs mi podciarkne a vypise : sc cannot be resolved
preco je to tak skusal som aj v Eclipse aj v NetBeans
dakujem za odpoveď

 
Odpovědět
21.4.2013 15:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na uzivatel
David Čápka:21.4.2013 15:06

Problém je v tom, že musíš článek číst celý a ne kopírovat bezmyšlenkovitě kód.

Odpovědět
21.4.2013 15:06
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
liza
Neregistrovaný
Avatar
liza:23.4.2013 16:48

ahoj
skusila som si urobit program papousek a siel mi krasne potom som si urobila program podla toho vlastny a uz mi nesiel vyhadzuje chybu ze sc nerozpoznava ako je to mozne ?
mozem aj poslat zdrojovy kod :) dakujem za odpoved

 
Odpovědět
23.4.2013 16:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na liza
David Čápka:23.4.2013 16:54

Achjo, další. 8| To vám opravdu nedochází, že když se nahoře vysvětlí, že musíme přidat řádek se scannerem, abychom mohli načítat, tak musíme přidat řádek se scannerem, abychom mohli načítat? Netušil jsem, že je to takový problém, někam to tam napíšu tučně.

Odpovědět
23.4.2013 16:54
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Lukaaash
Redaktor
Avatar
Lukaaash:30.4.2013 12:18

Zdravím, skvělý seriál. Ta tučná věta pomohla, žádný chyby mi to nehlásí, paráda. Sice ještě čtu o Javě na jiném webu, ale tady jsem si třeba už mohl načítat text přímo z konzole, což je fajn.
Články jsou velice srozumitelné.

Odpovědět
30.4.2013 12:18
Trocha poezie do toho umírání
Avatar
Mr. Forstak
Člen
Avatar
Mr. Forstak:13.5.2013 19:11

pro zadávání zvláštních znaků je podle mě lepší toto (" - Alt+34, ; - Alt+59, { - Alt+123, } - Alt+125) než furt přehazovat klávesnici.

 
Odpovědět
13.5.2013 19:11
Avatar
kdojinemujamukopa:19.6.2013 17:01

Java překvapivě nezahlásí chybu, ale provede tzv. implicitní konverzi a zavolá na čísle metodu Integer.toStrin­g() nebo přímo na Stringu String.valueOf()

Možná se pletu, ale nejde v tomhle případě o volání Float.toString() jakožto metody obalové třídy Float pro primitivní typ float? V zásadě je to to samý, ale v tomhle konkrétním případě žádný int/Integer nefiguruje. Jestli jsem mimo, tak sry :)

 
Odpovědět
19.6.2013 17:01
Avatar
Odpovídá na Mr. Forstak
kdojinemujamukopa:19.6.2013 17:10

Určitě se hodí i ALT + 124 = | jako logický operátor.

Mimochodem se mi nechtějí zobrazit starší komentáře. :(

System.out.prin­tln("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.");
tohle se vzalo kde? k ničemu, takovýmu jako vypnutí po stisku libovolný klávesy přece nedochází, alespoň ne u mě.

Editováno 19.6.2013 17:14
 
Odpovědět
19.6.2013 17:10
Avatar
Kit
Redaktor
Avatar
Odpovídá na kdojinemujamukopa
Kit:19.6.2013 17:17

To bude jen chyba z nepozornosti. Samozřejmě tam nepatří Integer, ale Float.

Odpovědět
19.6.2013 17:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na kdojinemujamukopa
Kit:19.6.2013 17:27

Nebuď detailista. U některých vývojových prostředí zůstává viset kurzor na posledním výstupu a někteří uživatelé netuší, že mají stisknout libovolnou klávesu, aby se dostali zpátky do editoru.

Mně třeba Vim po ukončení spuštěné editované aplikace píše "Press ENTER or type command to continue_" a čeká. Takže u mne by "libovolná klávesa" nefungovala, ale enter funguje. A také funguje zadání příkazu pro editor, což běžná IDE nemívají. Do programu však nedávám vůbec nic, to je jen neschopnost některých IDE, že to neumí a programátor to strká kam nemá - do aplikace.

Odpovědět
19.6.2013 17:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar

Neregistrovaný
Avatar
:9.9.2013 16:40

Chtěl bych se zeptat, když do papouška za svojí větu napíšu interpunkci, tak " , " se mi tam taky objeví, což je špatný... jak udělám, aby po zjištění interpunkce na konci vložené věty odstraní tu " , " udělanou pomocí konkatenace?

 
Odpovědět
9.9.2013 16:40
Avatar
syky.sykyc
Člen
Avatar
syky.sykyc:27.10.2013 13:04

Ahoj. Zacinam se ucit tento programovaci jazyk Java a mam mensi problem
Muj kod vypada presne takto:

package papousek;

import java.util.Scanner;

public class Papousek {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in, "Windows-1250");

System.out.prin­tln("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.prin­tln("Napiš něco: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.prin­tln(vystup);

}
}

vypise mi to pouze: Ahoj, jsem virtuální papoušek Lóra, rád opakuji!
Napiš něco:

ale nevim jak mam udelat aby se mi tam pak opakovalo nazdar ptaku
nazdar ptaku, nazdar ptaku! Nevim kam to mam dopsat :) dekuji za odpoved

 
Odpovědět
27.10.2013 13:04
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na syky.sykyc
David Čápka:1.11.2013 15:38

Napíšeš to do konzole NetBeans, kam se vypisuje text. Je to v článku vysvětlené.

Odpovědět
1.11.2013 15:38
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
ReBuLY
Člen
Avatar
ReBuLY:17.11.2013 0:17

zdravím .. mam dotaz k prvej ulohe, prečo keď napíšem nejake slovo do konzole tak mi ho nezopakuje iba hneď dá BUILD SUCCESSFUL.

Kód mám taký istý ako tu. A mám aj scanner na začiatku.

 
Odpovědět
17.11.2013 0:17
Avatar
ReBuLY
Člen
Avatar
Odpovídá na ReBuLY
ReBuLY:17.11.2013 0:33

Aha mám to.. nakoniec som zabudol dať System.out.prin­tln(vystup);

 
Odpovědět
17.11.2013 0:33
Avatar
Kit
Redaktor
Avatar
Odpovídá na ReBuLY
Kit:17.11.2013 1:02

Hmm, tím obvykle začínám, bývá to můj první příkaz v novém programu :)

Odpovědět
17.11.2013 1:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sisolpes
Člen
Avatar
sisolpes:22.1.2014 11:16

Napadlo mě, zda nenapíšete také návod na používáni BufferString.

Odpovědět
22.1.2014 11:16
Alt + 2
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na sisolpes
Jan Vargovský:22.1.2014 13:13

Koukám, že je to to samé, co SB v C#. Použiješ to tehdy, kdy spojuješ větší množství stringu. Nejčastěji v cyklu. Na jednom řádku by ti to měl překladač optimalizovat. Více pochopíš asi přímo na příkladu.

http://stackoverflow.com/questions/65668/why-to-use-stringbuffer-in-java-instead-of-the-string-concatenation-operator
 
Odpovědět
22.1.2014 13:13
Avatar
tomo384
Člen
Avatar
tomo384:19.2.2014 13:52

Preco mi eset identifikuje, tvoju zipovu prilohu ako virus?

 
Odpovědět
19.2.2014 13:52
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na tomo384
David Čápka:19.2.2014 14:31

Protože je nekvalitní.

Odpovědět
19.2.2014 14:31
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
KutilTIm
Neregistrovaný
Avatar
KutilTIm:20.2.2014 13:20

Ahoj,
program mě sice funguje, ale nejsem spokojen s výsledkem :)
proc je soucet 3.6000001?

Vitejte v kalkulacce
zadejte cislo k vynasobeni
1.2
zadejte druhe cislo k vynasobeni
2.4
soucet je: 3.6000001
rozdil je: -1.2
nasobek je: 2.88
podil je:0.5

 
Odpovědět
20.2.2014 13:20
Avatar
dvorakjiri66
Člen
Avatar
Odpovídá na KutilTIm
dvorakjiri66:23.2.2014 17:34

ahoj,
hadam, ze je to asi moc trivialni otazka, proto nikdo neodpovida? napada me, ze to ma neco docineni s ukládáním cisel v paměti, ale rad bych slysel i odpoved od nekoho, kdo tomu rozumi. dik moc

 
Odpovědět
23.2.2014 17:34
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na dvorakjiri66
David Čápka:23.2.2014 17:37

Ano, je to přesně z toho důvodu, desetinná čísla jsou uložená ve dvojkové soustavě a proto není výpočet úplně přesný. Např. pro finanční výpočty se float nebo double nepoužívá, ale používá se typ BigDecimal.

Odpovědět
23.2.2014 17:37
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na David Čápka
Zdeněk Pavlátka:23.2.2014 17:43

Pardon, na tabletu mi zlobí doteky, chtěl jsem dát i++ :[

Odpovědět
23.2.2014 17:43
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
dvorakjiri66
Člen
Avatar
 
Odpovědět
23.2.2014 17:56
Avatar
bashmenaut
Člen
Avatar
bashmenaut:8.3.2014 9:23

Ahoj, pri programe papousek vyhadzuje chybu:
symbol: class scanner
location: class papousek
chyba na riadku kde je prvykrat scanner..robim niekde chybu?

 
Odpovědět
8.3.2014 9:23
Avatar
jan.sobolciak:8.3.2014 18:59

No začínám s Javou jako ty takže tomu moc taky nerozumím, ale napadámě tohle: máš správně opsaný import? Co ti to přesně píše za chybu?

 
Odpovědět
8.3.2014 18:59
Avatar
Odpovídá na bashmenaut
Michal Haňáček:8.3.2014 19:28

Spíš sem kluci hoďte kus vašeho kódu, takhle vám jen těžko někdo poradí ... to je jak luštit z hvězd.

Před tím je dobré si to po sobě několikrát projít a v případě že "opisujete" tutoriál si svůj výtvor se zdrojákem z tutoriálu porovnat.

Odpovědět
8.3.2014 19:28
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na Michal Haňáček
jan.sobolciak:8.3.2014 21:55

import java.util.Scanner;

public class papousek {

public static void main(String[] args)
{
Scanner sc = new Scanner(System.in, "Windows-1250");

System.out.prin­tln("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.prin­tln("Napiš něco: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.prin­tln(vystup);
}
}

Tohle mi funguje!!

 
Odpovědět
8.3.2014 21:55
Avatar
Vojtěch Mikeš:12.4.2014 18:22

Chtěl jsem se zeptat proč mi v 2x násobiči sc.netxtLine() vyhazuje chybu, ale v papouškovi to funguje.

Odpovědět
12.4.2014 18:22
Důležité není zdraví, ale informace.
Avatar
Vojtěch Mikeš:12.4.2014 18:33

Tak problém už jsem sám vyřešil. Odpověď není nutná.

Odpovědět
12.4.2014 18:33
Důležité není zdraví, ale informace.
Avatar
-snaživec-
Člen
Avatar
-snaživec-:4.8.2014 18:51

Mám otázku:
V dvojnásobovači mi pri int a = sc.nextLine(); vyhadzuje chybu:
incompatibe types: Stringcannot be converted to int
zkopíroval som zdroják a aj tak to nefunguje :(

Odpovědět
4.8.2014 18:51
Pomali ďalej zájdeš.
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na -snaživec-
tomisoka:4.8.2014 20:39

Je to tak těžké si přečíst odstavec pod tím, kde je i vysvětleno proč to nefunguje???

 
Odpovědět
4.8.2014 20:39
Avatar
-snaživec-
Člen
Avatar
Odpovídá na tomisoka
-snaživec-:4.8.2014 21:30

Nič v zlom, ale nieje tam nikde napísané prečo to nefunguje

Odpovědět
4.8.2014 21:30
Pomali ďalej zájdeš.
Avatar
-snaživec-
Člen
Avatar
-snaživec-:4.8.2014 21:42

Sorry, chyba :): Myslel som že odstavec v Net Beans

Odpovědět
4.8.2014 21:42
Pomali ďalej zájdeš.
Avatar
Patrik Neumann:13.11.2014 15:59

Mám problém s programy v Javě, když to uložím, otevřu, problikne jen černé malé okno a hned zmizí, co mám dělat? Musím stahovat jinou javu? děkuji

Odpovědět
13.11.2014 15:59
Nic není nemožné, proto se snažím dál.
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Patrik Neumann
gcx11:13.11.2014 17:29

Zkus na konec programu přidat načítání z konzole. Potom by se Ti měl program zastavit na načítání a konzole by nezmizela.

 
Odpovědět
13.11.2014 17:29
Avatar
Odpovídá na gcx11
Patrik Neumann:13.11.2014 17:39

Prosímtě, řekni mi ten kod na tu konzoli

Odpovědět
13.11.2014 17:39
Nic není nemožné, proto se snažím dál.
Avatar
Odpovídá na Patrik Neumann
Libor Šimo (libcosenior):13.11.2014 18:13

vstup=sc.nextLi­ne();

Odpovědět
13.11.2014 18:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Patrik Neumann
gcx11:13.11.2014 18:14

Na začátku programu v metodě main musíš mít:

Scanner sc = new Scanner(System.in, "Windows-1250");

A na konci:

sc.nextLine();
 
Odpovědět
13.11.2014 18:14
Avatar
Odpovídá na gcx11
Patrik Neumann:13.11.2014 18:16

jo děkuji

Odpovědět
13.11.2014 18:16
Nic není nemožné, proto se snažím dál.
Avatar
Odpovídá na gcx11
Patrik Neumann:13.11.2014 19:39

bohužel nepomohlo

Odpovědět
13.11.2014 19:39
Nic není nemožné, proto se snažím dál.
Avatar

Člen
Avatar
:8.12.2014 21:34

Mám problém. Program Papoušek mi funguje, ale na kartě problems v Eclipse mi to hází hlášku "Resource leak: 'sc' is never closed". Ve zdrojáku mám proměnnou sc žlutě podtrženou. Nevím, proč se mi ta hláška objevuje a jak se jí zbavit.

 
Odpovědět
8.12.2014 21:34
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na
vajkuba1234:8.12.2014 22:04

Hoď tady kód a použij tlačítko odpovědět...

Odpovědět
8.12.2014 22:04
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar

Člen
Avatar
Odpovídá na
:8.12.2014 22:07

Za 1. Každý programátor Ti zde řekne:Ukaž kód. 2. Hlasí Ti to, že obrazovka se Ti nikdy nezavře. Máš tam zkrátka nějakou chybu. Oprav si ji nebo si to napiš dlé návodu ještě jednou a pozorně.8-)

 
Odpovědět
8.12.2014 22:07
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na
Jan Vargovský:8.12.2014 22:07

Když už ji nepotřebuješ tak zavoláš sc.Close(). (takže jestli je v mainu tak někde před returnem se dělá tzv. clean up všech resources)

Editováno 8.12.2014 22:08
 
Odpovědět
8.12.2014 22:07
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na
Jan Vargovský:8.12.2014 22:08

Ne, to ti opravdu každý programátor neřekne ;)

 
Odpovědět
8.12.2014 22:08
Avatar

Člen
Avatar
Odpovídá na Jan Vargovský
:8.12.2014 22:11

Máš pravdu.Byl jsem moc rychlý. Teprve nyní jsem se i mrkl nahoru na kód v článku. Takže má omluva. :-))

 
Odpovědět
8.12.2014 22:11
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na
Jan Vargovský:8.12.2014 22:31

Tje jedno, i kdyby tu nebyl kód, tak z té chyby jde dost jasně poradit...

 
Odpovědět
8.12.2014 22:31
Avatar

Člen
Avatar
Odpovídá na Jan Vargovský
:8.12.2014 22:47

Jsem si sc vyložil jako screen a nikoliv jako scanner.Každopádně na principu mé odpovědi to až tak nic nemění.

 
Odpovědět
8.12.2014 22:47
Avatar

Člen
Avatar
Odpovídá na Jan Vargovský
:8.12.2014 22:57

Díky, pomohlo to.

 
Odpovědět
8.12.2014 22:57
Avatar
didoonly1999
Člen
Avatar
didoonly1999:23.12.2014 11:19

Neviete prečo keĎ napišem : sc.nextLine(); tak mi vypíše :
cannot find symbol
symbol : variable sc
location : class JavaApplication7

 
Odpovědět
23.12.2014 11:19
Avatar
juraj.kacir
Člen
Avatar
juraj.kacir:31.1.2015 19:53

som úplný nováčik čo sa týka programovania preto by som žiadal o ohľaduplnosť.Takže Papagaj-nedostal som taký out ako je v postupe,potom som vyskúšal zdrojový kód z postupu-ani tak som nedostal taký out;Zdvojnasobovac a Kalkulačka-vypísalo mi to chybu týkajúcu sa sc-pozeral som komentáre,doložil som riadok Scanner sc = new Scanner(System.in, "Windows-1250"); a k nemu mi vyhodilo chybu.Potom som skúšal zdrojový kód a vyhodilo rovnakú chybu.Zatiaľ však musím uznať že mám z toho značný chaos dúfam že sa to neskôr zmení.

 
Odpovědět
31.1.2015 19:53
Avatar
jan.rybar3
Člen
Avatar
jan.rybar3:10.2.2015 20:57

Ahoj lidi, mě tam prostě nejde napsat řádka import java.util.Scanner;. Pořád to hlásí červenou chybu. Nějaký tip?

 
Odpovědět
10.2.2015 20:57
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na jan.rybar3
Jan Vargovský:10.2.2015 21:42

Chyby obvykle červené bývají, co ta chyba říká?

 
Odpovědět
10.2.2015 21:42
Avatar
Libor Šimo (libcosenior):16.2.2015 8:51

Ahoj, pri všetkých ostatných jazykoch sa uprednostňuje UTF-8 ako univerzálna sada a tu je Windows-1250.
Je to tým, že je článok starý, alebo tým, že to tak má byť?

Odpovědět
16.2.2015 8:51
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Tomáš Maňhal:16.2.2015 10:07

Používej UTF-8 ;-) Je univerzální, obsahuje všechny znaky ;-) . Windows-1250 všechny neobsahuje a tak se může stát, že v budoucnu nastane problém.

V článku je sice uveden windows-1250, ale je to konkrétní řešení, kde může fungovat bez problému. Holt nejde použít všude. UTF-8 je taková jistota ;-)

Editováno 16.2.2015 10:07
 
Odpovědět
16.2.2015 10:07
Avatar
Odpovídá na Tomáš Maňhal
Libor Šimo (libcosenior):16.2.2015 10:13

Myslel som si to, dík. :-)

Odpovědět
16.2.2015 10:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
jan.rybar3
Člen
Avatar
jan.rybar3:18.2.2015 18:42

Lidi, prosím, kam mám napsat v programu papoušek "nazdar ptáku, nazdar ptáku"? Fakt vůbec netuším, jak se přes to dostat.

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Ahoj, jsem virtuální papošek Lóra");
System.out.prin­tln("Já jsem Jéňa");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + "Lora,Lora " + vstup + "Lora!";
System.out.prin­tln(vystup);

prostě mě tenhle program nefunguje. Bohužel z článku to nelze vydedukovat.

 
Odpovědět
18.2.2015 18:42
Avatar
Odpovídá na jan.rybar3
Štefan Pružinský:18.2.2015 19:44
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Ahoj, jsem virtuální papošek Lóra, zadaj niečo: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup;
System.out.println(vystup);

Neviem presne čo myslíš, pravdepodobne si si nevšimol konzolu a nevieš ako do nej zadávať vstupy. Spustíš program, dole do konzoly napíšeš "nazdar ptáku", stlačíš enter, a program vypíše "nazdar ptáku, nazdar ptáku". Nech sa darí...:)

Editováno 18.2.2015 19:45
Odpovědět
18.2.2015 19:44
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
brevnovak
Člen
Avatar
brevnovak:28.2.2015 17:16

ahoj, nevite, proc mi nefungu utf-8 ve scanneru:

package radek.pkg3.pkg1.bk;
import java.util.Scanner;

/**
*
* @author Ostatni
*/
public class Radek31Bk {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System­.in,"UTF-8");
System.out.prin­tln("ahoj, kdo jsi?");
String vstup = sc.nextLine();
System.out.prin­tln("Jsi "+vstup);

vypise mi to:

run:
ahoj, kdo jsi?
ř

Jsi �
BUILD SUCCESSFUL (total time: 4 seconds)

  • dalsi vec je, ze musim nekolikrat odenterovat, nez mi to napise vystup. tusite? dik :)
Editováno 28.2.2015 17:18
 
Odpovědět
28.2.2015 17:16
Avatar
roman64
Redaktor
Avatar
roman64:25.5.2015 18:54

Připoujuji se k předchozímu příspěvku:
ZDROJ: **
Scanner sc = new Scanner(System.in, "UTF-8");
String R = sc.nextLine() ;
System.out.prin­tln(R);
**KONZOLE:

run:
ř

BUILD SUCCESSFUL (total time: 11 seconds)

Jestliže změním kdovou stránku na:
Scanner sc = new Scanner(System.in, "Windows-1250");
**je výstup: **
run:
Zadej řetez:
ř
ř
BUILD SUCCESSFUL (total time: 4 seconds)

s UTF-8 české "ř" nefunguje...

Odpovědět
25.5.2015 18:54
Definice šílenství je dělat stejnou věc znovu a znovu a očekávat jiné výsledky.“ Albert Einstein.
Avatar
Erik Palenčík:16.6.2015 20:29

Som týžďen hľadal nejakú poriadnu stránku na Javu, teraz ju mám, ďakujem autorovi za jeho čas, dúfam že mu to dlho vydrží. Java by s týmto návodom nemala byť problém, už len spraviť externú časť z mat :)

 
Odpovědět
16.6.2015 20:29
Avatar
ra3sk
Člen
Avatar
ra3sk:31.8.2015 0:06

A parsovanie stringu je tiež možné? Ak hej ako to prebieha?

 
Odpovědět
31.8.2015 0:06
Avatar
Odpovídá na ra3sk
Libor Šimo (libcosenior):31.8.2015 5:46

Na stringu mozes parsovat hlavne jeho dlzku a na to staci podmienka.

Odpovědět
31.8.2015 5:46
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Miroslav Vysloužil:29.9.2015 22:25

Ahoj u zdvojnásobovače v řádku

String s = sc.nextLine();

mi pořád vyskakuje chyba a nevím proč.
Prosím o radu

 
Odpovědět
29.9.2015 22:25
Avatar
B42P6
Člen
Avatar
Odpovědět
30.9.2015 9:52
'long long long' is too long for GCC
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Miroslav Vysloužil
David Čápka:30.9.2015 9:57

Přečetl sis tu tučnou větu v článku s vykřičníkem, viď? :-`

Odpovědět
30.9.2015 9:57
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Neaktivní uživatel:4.10.2015 13:15

Ta kalkulačka mi nějak nefunguje, nevíte kde je chyba?

package calculator;


public class Calculator {


    public static void main(String[] args)
    {
       System.out.println("Vítejte v kalkulačce.");
       System.out.println("Zadejte první číslo:");
       float a = Float.parseFloat(sc.nextLine());
       System.out.println("Zadejte druhé číslo:");
       float b = Float.paseFloat(sc.nextLine());
       float soucet = a + b;
       float rozdil = a - b;
       float soucin = a * b;
       float podil = a / b;
       System.out.println("Součet:" + soucet);
       System.out.println("Rozdíl:" + rozdil);
       System.out.println("Součin:" + soucin);
       System.out.println("Podíl:" + podil);
       System.out.println("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesnici.");
    }
}

Vypisuje to chybu u:

float a = Float.parseFloat(sc.nextLine());

a:

float b = Float.parseFloat(sc.nextLine());
Odpovědět
4.10.2015 13:15
Neaktivní uživatelský účet
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
tomisoka:4.10.2015 13:21

Viz předchozí komentář od Davida:

Přečetl sis tu tučnou větu v článku s vykřičníkem, viď?

...

 
Odpovědět
4.10.2015 13:21
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
Taskkill:4.10.2015 13:21

Vždyť tam nemáš ten scaner naimportovaný ;)

import java.util.Scanner; // životně důležité

public class Papousek {

    public static void main(String[] args)
    {
         Scanner sc = new Scanner(System.in, "Windows-1250"); // smrtelně důležité

Už vidíš? Musíš ten scaner naimportovat a inicializovat... co je objekt "sc" ? To ti IDE nezařve, že používáš neexistující objekt?

PS: David to tady o tři řádky výš říkal ;).

 
Odpovědět
4.10.2015 13:21
Avatar
Odpovídá na Taskkill
Neaktivní uživatel:4.10.2015 16:59

Můj bože ano, moc děkuji, jsem to nějak vypustil.

Odpovědět
4.10.2015 16:59
Neaktivní uživatelský účet
Avatar
pleione
Člen
Avatar
pleione:25.10.2015 18:50

Ahoj,

Najprv chcem podakovat autorovi za tieto lekcie a taktiez za napomocne prispevky,komenty uzivatelov.
OTAZKA: kde robim chybu, pokial sa mi nechce zobrazovat diakritika v konzole? Do urciteho casu to bolo ok,ale nieco som zmenil..co? neviem :) Zdrojovy kod som skusal kompletne skopirovat,no aj tak nepomaha.
Dakujem za pomoc :)

 
Odpovědět
25.10.2015 18:50
Avatar
pleione
Člen
Avatar
Odpovídá na pleione
pleione:25.10.2015 18:52

aaa tak už som na to prisiel :D ..."Windows-1250" sorac za zbytocny prispevok :)

 
Odpovědět
25.10.2015 18:52
Avatar
jakubho
Člen
Avatar
jakubho:3.11.2015 20:21

Ahoj. Mám vše přepsané podle vás, příslušné části kódu a přesto mi to hází chybu které se nemohu zbavit, nemám absolutně tucha proč to tam je, vše se mi zdá ok. Budu rád když mi někdo pomůže :-)

Odpovědět
3.11.2015 20:21
Chyba-Jediná jistota v životě programátora.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na jakubho
albertpatera:3.11.2015 20:30

možná je chyba, že ty máš napsané:

s = sc.nextline();

ale tam má podle mě být:

s = sc.nextLine();

(velké L místo malého) ;-)

 
Odpovědět
3.11.2015 20:30
Avatar
jakubho
Člen
Avatar
jakubho:3.11.2015 21:07

To by mohlo být, taková hloupá chyba mne nenapadla, zítra to zkusím. Díky :-)

Odpovědět
3.11.2015 21:07
Chyba-Jediná jistota v životě programátora.
Avatar
jakubho
Člen
Avatar
Odpovídá na albertpatera
jakubho:4.11.2015 20:08

Výborně, díky za správnou radu :-)
Dost by mne zajímalo kam se dostanu, když nezvládnu vyřešit ani takovýto problém :D

Odpovědět
4.11.2015 20:08
Chyba-Jediná jistota v životě programátora.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na jakubho
albertpatera:4.11.2015 23:30

Není zač ;-)

občas se stane, že se člověk přehlédne ;-)

 
Odpovědět
4.11.2015 23:30
Avatar
jakub.dodek
Člen
Avatar
jakub.dodek:18.11.2015 21:47

Super návod, práve som urobil vlastnú menšiu kalkulačku s dvoj a trojsčítaním s premennými int a zistil som že funguje funkcia parseInt :) SUPER :D

 
Odpovědět
18.11.2015 21:47
Avatar
Erik Palenčík:2.1.2016 15:33

V knihe Java7 od Herberta Schilda sa pouziva throws java.io.IOException a k tomu zn = (char) System.in.read(); aky je rozdiel??? Tam je toho vela ineho, ako uvas :D :D

 
Odpovědět
2.1.2016 15:33
Avatar
Richard H.
Redaktor
Avatar
Odpovídá na Erik Palenčík
Richard H.:2.1.2016 16:54

Pokud funkci System.in.read() chápu dobře tak System.in.read() přečte jen jeden znak zatímco sc.nextLine() rovnou celí řádek.

Odpovědět
2.1.2016 16:54
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
Erik Palenčík:2.1.2016 18:20

Tusim že to čita aj cele riadky,.... Som mimo, ked budem doma poslem cely kod z knihy :)

 
Odpovědět
2.1.2016 18:20
Avatar
Robyzz
Člen
Avatar
Robyzz:4.1.2016 23:43

Mozem vediet preco mi to zobrazuje chybu na int a = sc.nextLine(); Dakujem

package dvojnasobovac;
import java.util.Scanner;


/**
 *
 * @author rober
 */
public class Dvojnasobovac {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in, "Windows-1250");
       System.out.println("Zadajte cislo k zdvojnasobeniu");
       int a = sc.nextLine();
       a = a * 2;
       System.out.println(a);

    }

}
 
Odpovědět
4.1.2016 23:43
Avatar
Robyzz
Člen
Avatar
Odpovídá na Robyzz
Robyzz:4.1.2016 23:51

Aha tak to treba asi naparsovat, neprecital som si to az po tom :D

 
Odpovědět
4.1.2016 23:51
Avatar
Honza Lezec
Člen
Avatar
Honza Lezec:5.1.2016 17:05

Ahoj všem, prosím o radu (a trpělivost se začátečníkem).
Po nakopírování kódu kalkulačky z tutoriálu do main a dopsání řádku
Scanner sc = new Scanner(System.in, "Windows-1250");
mi Net Beans IDE 8.1 stále hlásí chybu (cannot find symbol class Scanner), kalkulačka nefunguje
Stáhl jsem ZIP soubor, nakopíroval komplet kód odtud a ten funguje. Chce to ale potvrdit "Import Classes", "Pasted code refers to following not imported elements, resolve imports to include them?".

Text v "main" je do puntíku stejný, v čem je tady rozdíl?

 
Odpovědět
5.1.2016 17:05
Avatar
vosa53
Člen
Avatar
Odpovídá na Honza Lezec
vosa53:5.1.2016 17:12

Pravděpodobně nemáš naimportovanou třidu Scanner, tedy chybí ti toto:

import java.util.Scanner;

Dopiš to pod řádek začínající package a nebo v netbeans klikni pravým a zvol "Fix imports", tím NetBeans ten řádek přidá samo. Proč to tak musí být zatím neřeš, později v seriálu se k tomu dostaneš. ;)

 
Odpovědět
5.1.2016 17:12
Avatar
Honza Lezec
Člen
Avatar
Odpovídá na vosa53
Honza Lezec:5.1.2016 17:17

Ahoj Vosa, díky, funguje to. Žasnu, jak rychle tady člověk dojde k pomoci. Tomu říkám povzbuzení do začátku. DÍKY!

 
Odpovědět
5.1.2016 17:17
Avatar
Lenka
Redaktor
Avatar
Lenka:6.1.2016 20:55

V Jave lze tedy nacist ze vstupu jen text a ten nasledne prevest na cislo, kdyz se vstupem ma byt zachazeno jako s cislem?
Nelze jako napr. v C precist ze vstupu rovnou cislo?

 
Odpovědět
6.1.2016 20:55
Avatar
Erik Báča
Člen
Avatar
Odpovídá na Lenka
Erik Báča:6.1.2016 23:11

Pokud jsem správně pochopil tvoji otázku, tak číslo načteš rovnou takhle:

int i = Integer.parseInt(sc.nextLine());
Odpovědět
6.1.2016 23:11
Když mi dáš mínus, napiš proč!
Avatar
Odpovídá na Lenka
Filip Oborník:7.1.2016 8:08

Myslím si, že spíš myslel, jestli nejde číslo načíst bez parsování. A ano, jde.

int cislo1 = sc.nextInt();
int cislo2 = sc.nextDouble();

vždy záleží, jakého typu to číslo bude.
Podle mě je ale lepší držet se parsování, aby jsi věděl, jak s tím pracovat, protože později (např. GUI komponenty) ti budou vracet jen String a ty ho budeš muset naparsovat :)

Odpovědět
7.1.2016 8:08
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Filip Oborník
pocitac770:7.1.2016 9:54

Navíc, když jsem se na tohle podíval jednou, tak jsem měl nějaké problémy při ošetřování vstupu, mám pocit, že nefungoval klasický cyklus, který se opakuje dokud uživatel nezadá platné číslo (neustále cyklicky vyhazuje chybu)

 
Odpovědět
7.1.2016 9:54
Avatar
Odpovídá na Filip Oborník
Filip Oborník:7.1.2016 17:44

Omlouvám se za chybu v předchozím příspěvku. Nějak jsem si to po sobě nezkontroloval.
Je tam:

int cislo2 = sc.nextDouble();

přitom je logické, že double do int nejde nahrát. Takže to má být:

double cislo2 = sc.nextDouble();
Odpovědět
7.1.2016 17:44
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Odpovídá na pocitac770
Filip Oborník:7.1.2016 17:48

Bude to určitě fungovat i v cyklu. Jen si musíš dát pozor na to, jakého je typu je právě zadávané číslo.

int cislo = 0;
do {
        cislo = sc.nextInt();
        System.out.println(cislo);
} while (cislo != 0);

Toto bude fungovat, ale jen pokud budeš zadávat celá čísla. Pokud by jsi zadal desetinné číslo, nebo jiný znak, tak to spadne.

Editováno 7.1.2016 17:49
Odpovědět
7.1.2016 17:48
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Filip Oborník
pocitac770:8.1.2016 0:03

Právě jsem mluvil o tom, že to dělalo problémy při ošetřování vyjímkou v tomhle cyklu.

 
Odpovědět
8.1.2016 0:03
Avatar
Odpovídá na pocitac770
Filip Oborník:8.1.2016 7:45

Aha, tak to jsem tě špatně pochopil :)

Odpovědět
8.1.2016 7:45
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Patress Chajeno Vychlopen:22.1.2016 16:30

Ahojte mám problem s programom Zdvojnásobovač, fakt neviem kde mam chybu... prikladám aj screen :) Za pomoc vopred dakujem :)

 
Odpovědět
22.1.2016 16:30
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Patress Chajeno Vychlopen
tomisoka:22.1.2016 16:32

Zacituju ti část z článku:

Pokud budete potřebovat v kterémkoli ze svých programů načíst text z konzole, je nutné program takto upravit a přidat proměnnou sc!

 
Odpovědět
22.1.2016 16:32
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Patress Chajeno Vychlopen
tomisoka:22.1.2016 16:37

A pak ti tam ještě chybí středník.

 
Odpovědět
22.1.2016 16:37
Avatar
Steve Schlemmer:26.1.2016 21:33

Ahoj chtěl bych poradit při zadání
public static void main(String[] args) {
System.out.prin­tln("Zdvojnáso­bovac");
int a = sc.nextLine();
a = a * 2;
System.out.prin­tln();

mě hlási chybu sc.nextLine();­....."xception in thread "main" java.lang.Error: Unresolved compilation problem:
" a nevím si s ním rady, jsem začátečník, předem děkuji za pomoc:)

 
Odpovědět
26.1.2016 21:33
Avatar
Odpovídá na Steve Schlemmer
Miroslav Hudák:26.1.2016 21:46

musis vstup ,,a,, naparsovat na int :)

 
Odpovědět
26.1.2016 21:46
Avatar
Odpovídá na Steve Schlemmer
Miroslav Hudák:26.1.2016 21:51

sc.nextLine(); uklada jako string takze nejprve musis dat String a=sc.nextLine(); a potom do dalsi promenne int b=parseInt(a); to je parsovani, projdi si jeste raz tuto lekci, tam to najdes :)

 
Odpovědět
26.1.2016 21:51
Avatar
Odpovídá na Steve Schlemmer
Miroslav Hudák:26.1.2016 22:03

Teda zapomnel jsem tam neco. int b=Integer.par­seInt(a);

 
Odpovědět
26.1.2016 22:03
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Steve Schlemmer
tomisoka:26.1.2016 23:03

To musím zase citovat tu část článku? Citoval jsem ji pár komentářů nad tebou a v článku je to napsané tučně...

Pokud budete potřebovat v kterémkoli ze svých programů načíst text z konzole, je nutné program takto upravit a přidat proměnnou sc!

 
Odpovědět
26.1.2016 23:03
Avatar
Daniel Gubančik:22.2.2016 22:03

Zdravím chcel by som vedieť načo slúži to v zátvorke v tomto príkaze
Scanner sc = new Scanner(System.in, "Windows-1250")
Vďaka za objasnenie

 
Odpovědět
22.2.2016 22:03
Avatar
Lukáš Smola:26.2.2016 21:13

Dobrý den začínám s javou a při zkoušení vašeho kódu mi to vyhazuje tuhle chybu nevite nekdo co s tím? :)
Dekuju za pripadne rady :)

("Exception in thread "main" java.lang.Run­timeException: Uncompilable source code - Erroneous sym type: java.util.Scan­ner.nextline
zadejte text
at papousek.Papou­sek.main(Papou­sek.java:23)
C:\Users\Petan\Ap­pData\Local\Net­Beans\Cache\8­.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second) ")

 
Odpovědět
26.2.2016 21:13
Avatar
B42P6
Člen
Avatar
Odpovídá na Lukáš Smola
B42P6:26.2.2016 21:26

Java rozlišuje veľké a malé písmena.

nextline()

neexistuje,

nextLine()

už existuje.

Odpovědět
26.2.2016 21:26
'long long long' is too long for GCC
Avatar
Lukáš Smola:26.2.2016 22:05

Problém vyřešen děkuji měl jsem tam par chybiček :)

 
Odpovědět
26.2.2016 22:05
Avatar
Odpovídá na B42P6
Lukáš Smola:26.2.2016 22:06

Problém vyřešen děkuji měl jsem tam par chybiček :)

 
Odpovědět
26.2.2016 22:06
Avatar
filiptartott
Člen
Avatar
filiptartott:7.4.2016 9:46

vysvetlite mi čo znamená "Windows-1250"

 
Odpovědět
7.4.2016 9:46
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na filiptartott
pocitac770:7.4.2016 10:58

Je to použitá znaková sada pro Scanner, viz zde: https://cs.wikipedia.org/…Windows-1250

 
Odpovědět
7.4.2016 10:58
Avatar
Petr Vít
Člen
Avatar
Petr Vít:26.4.2016 15:59

Zdravím, dnes jsem zkoušel napsat něco v Jave a dle navédu mi to pri kompilaci hazi chybu a nechce me to pustit dale ..Prikladam Screen ..Díky za odpoved

 
Odpovědět
26.4.2016 15:59
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Petr Vít
vajkuba1234:26.4.2016 16:04

Abys mohl pouzivat tridu Scanner ve sve tride, musis ji naimportovat.

import java.util.Scanner;

Dalsi chyba je radek 23: String = vstup; To = tam samozrejme nepatri. (Kdyz vytvaris promennou vystup, mas to uz spravne.

Odpovědět
26.4.2016 16:04
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
Petr Vít
Člen
Avatar
Petr Vít:26.4.2016 16:39

Díky za odpoved, uplne jsem, to prehledl.
Ale hned po opraveni se objevila nová chyba. A to jsem to zkusil zkopirovat z clanku .Díky

 
Odpovědět
26.4.2016 16:39
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Petr Vít
vajkuba1234:26.4.2016 16:58

To "Scanner sc = new Scanner(System.in, "UTF-8");" tam samozrejme nechat musis...

Odpovědět
26.4.2016 16:58
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
Tomáš Krej
Člen
Avatar
Tomáš Krej:27.4.2016 19:51

Ahoj, jsem začátečník a napadlo mě zkusit si upravit zde uvedenou kalkulačku tak, aby uživatel mohl upřesnit, jakou operaci chce provést, a nezobrazovaly se automaticky všechny výsledky. Nefunguje mi to, ale chtěl bych vědět, co dělám když tak špatně - pokud na to tedy po třech dílech mám vůbec znalosti. Podle mě se tomu asi nelíbí číselná a textová proměnná a že s tím zacházím moc jednoduše...:

package kalkulacka;
import java.util.Scanner;
/**
 *
 * @author Tomas
 */
public class Kalkulacka {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner sc = new Scanner(System.in, "Windows-1250");
                System.out.println("Vítejte v kalkulačce");
System.out.println("Zadejte první číslo:");
float a = Float.parseFloat(sc.nextLine());
System.out.println("Zadejte druhé číslo:");
float b = Float.parseFloat(sc.nextLine());
System.out.println("Vyberte operaci: +, -, *, /");
String operace;
operace = sc.nextLine();
float vysledek = a operace b;
System.out.println("Výsledek: " + vysledek);
System.out.println("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou.");

Vyhazuje mi to tuto chybu: Uncompilable source code - variable b is already defined in method main(java.lan­g.String[])
Je možno to nějak upravit se znalostmi, které mám dosud z tohoto seriálu?

 
Odpovědět
27.4.2016 19:51
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na Tomáš Krej
Lukas C#:27.4.2016 20:16

float vysledek = a operace b;
Tohle ti v žádném případě fungovat nebude, musí tam být konkrétní operátor (operace se nenahradí tím, co zadá uživatel). Toho, co ty chceš, docílíš switchem - něco jako case "+": result = a+b; break; case "-": result = a-b; atd.

 
Odpovědět
27.4.2016 20:16
Avatar
Tomáš Krej
Člen
Avatar
Tomáš Krej:27.4.2016 21:57

Ok, díky, půjdu do dalších dílů seriálu a snad to v budoucnu rozlousknu :)

 
Odpovědět
27.4.2016 21:57
Avatar
Ondřej Kratochvíl:8.6.2016 15:23

Ahoj, mám blbý, spíš teoretický dotaz a to k zdvojnásobovači. Java je statická a nelze její datový typ změnit a proto nechápu, proč lze zapsat a = a * 2??

String s = sc.nextLine();
int a = Integer.parseInt(s);
a = a * 2;
System.out.println(a);

Smysl by mi to dávalo spíš s další proměnou ne?

String s = sc.nextLine();
int a = Integer.parseInt(s);
b = a * 2;
System.out.println(b);

Díky za odpověď a autorovi za skvělou práci :)

 
Odpovědět
8.6.2016 15:23
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na Ondřej Kratochvíl
tomisoka:8.6.2016 16:36

Je statická ve smyslu, že nemůžeš změnit datový typ - nemůžeš do jedné proměnné ukládat int a pak se rozhodnout, že tu samou proměnnou použiješ na uložení stringu. Ale hodnotu proměnné měnit můžeš.

 
Odpovědět
8.6.2016 16:36
Avatar
Timotej Adamec:10.6.2016 22:49

Ahoj, potřeboval bych podrobněji popsat, proč parsování používáme. Předem děkuji za jakoukoli odpověď. T. A.

 
Odpovědět
10.6.2016 22:49
Avatar
Erik Báča
Člen
Avatar
Odpovídá na Timotej Adamec
Erik Báča:10.6.2016 23:14

Parsování se používá pro změnu datového typu, např.:

String s = "12";
int x = Integer.parseInt(s);

mění String na int.

Odpovědět
10.6.2016 23:14
Když mi dáš mínus, napiš proč!
Avatar
madewman
Člen
Avatar
madewman:23.7.2016 10:39

Dobry den,mohli by ste mi poradit co je tam za chybu

Odpovědět
23.7.2016 10:39
"Whether you think you can, or you think you can't - you're right."(Henry Ford)
Avatar
Odpovídá na madewman
Ing. Petr Štechmüller:23.7.2016 11:08

Ahoj, když se podíváš dolu do konzole, tak to červené je vyjímka, která říká co je za problém. Hned na prvním řádku se píše:

java.io.charset.UnsupportedCharsetException: Windows1250

Tato vyjímka znamená, že Java nemohla najít znakovou sadu s názvem Windows1250.
Když se zadává znaková sada, tak se musí dbát na velká a malá písmena.
Řešení tedy bude psát místo Winsows1250 toto: windows-1250.
Pokud by jsi chtěl podrobnější seznam podporovaných znakových sad, zde je odkaz:
https://docs.oracle.com/…ing.doc.html

Odpovědět
23.7.2016 11:08
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
madewman
Člen
Avatar
Odpovídá na Ing. Petr Štechmüller
madewman:23.7.2016 22:14

Dakujem za odpoved.

Odpovědět
23.7.2016 22:14
"Whether you think you can, or you think you can't - you're right."(Henry Ford)
Avatar
Štěpán Mazůrek:10.8.2016 10:11

Zdravím. Netuším proč,ale i když spustím tu staženou verzi tak mi to v run vypíše pouze toto:
"Ahoj, jsem virtuální papoušek Lóra, rád opakuji!
Napiš něco:ahoj"
Ještě jednou na to upozorním, není to můj kód, i když to samé to psalo i v mém. Tenhle jsem dnes stáhl tady, abych se podíval co dělám špatně a píše mi to úplně to stejné. Prosím o radu a předem děkuji za odpověď.

 
Odpovědět
10.8.2016 10:11
Avatar
Štěpán Mazůrek:13.8.2016 20:37

Když sem nahradil vstup = sc.nextLine(); za text, konkrétně tam mám vstup = "ahoj";. V tomhle případě mi to funguje jak má, takže pravděpodobně bude problém v tom sc.nextLine, Kdyby byl někdo tak hodnej a vysvětlil mi to prosím znovu, protože jsem to moc nepochopil.

Ještě sem tam dopisoval system.out.prin­tln(vstup)

System.out.println("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.println("Napiš něco: ahoj ");
String vstup;
vstup = "ahoj";
System.out.println(vstup);
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.println(vystup);
Editováno 13.8.2016 20:39
 
Odpovědět
13.8.2016 20:37
Avatar
Jakub Vlček
Člen
Avatar
Odpovídá na Štěpán Mazůrek
Jakub Vlček:13.8.2016 21:59

Mám stejný problém...:)

 
Odpovědět
13.8.2016 21:59
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Štěpán Mazůrek
pocitac770:13.8.2016 22:10

Něco to vypsat musí, nebo alespoň to něco musí dělat (někde nějaké varování? chyba?), zkus vyscreenovat co půjde, třeba někde něco uvidíme

 
Odpovědět
13.8.2016 22:10
Avatar
Štěpán Mazůrek:13.8.2016 23:05

Mmm, ještě když jsem nad tím přemýšlel, tak mi došlo, že si vlastně nejsem ani jistej kam mám to "něco" napsat. Psal sem to za tu dvojtečku do system.out.prin­tln. V tom případě to vypadá takto, ale napadlo mě, jestli není problém třeba v tomto.

 
Odpovědět
13.8.2016 23:05
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Štěpán Mazůrek
pocitac770:13.8.2016 23:22

Máš to "něco" napsat do konzole, to je ta kouzelná věc tam dole, která se ti zobrazila

 
Odpovědět
13.8.2016 23:22
Avatar
Štěpán Mazůrek:14.8.2016 0:17

|-) Mělo mi to dojít pardon. Každopádně díky za pomoc.

Editováno 14.8.2016 0:17
 
Odpovědět
14.8.2016 0:17
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Štěpán Mazůrek
pocitac770:14.8.2016 1:28

Pohoda, každej někdy udělá nějakou blbost :D

 
Odpovědět
14.8.2016 1:28
Avatar
Miroslav Bejlek:18.8.2016 17:14

Ahoj,
mám dotaz proč např. pro čtení Int se používá
int a = Integer.parse­Int(sc.nextLi­ne());
a nepoužívá se int a = sc.nextInt();

nepochopil jsem smysl. Děkuji za vysvětlení :-)

 
Odpovědět
18.8.2016 17:14
Avatar
Lukas C#
Redaktor
Avatar
Odpovídá na Miroslav Bejlek
Lukas C#:18.8.2016 20:22

Protože sc.nextLine() načte a vrátí vstup uživatele, což je text (String). A ten je interně reprezentovaný úplně jinak. Proto tento text musíš předat funkci parseInt, která jej převede na číslo. Jestli chceš pochopit detaily, potřebuješ znát: binární aritmetiku, reprezentace čísel ve dvojkovém doplňku a kódování znaků.

 
Odpovědět
18.8.2016 20:22
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Miroslav Bejlek
pocitac770:19.8.2016 3:07

Pokud umíš trochu anglickyy zkus si přečíst toto: http://stackoverflow.com/…nner-nextint

 
Odpovědět
19.8.2016 3:07
Avatar
Miroslav Bejlek:19.8.2016 12:49

Děkuji za odpovědi, pochopil jsem to tak, že když načítám číslo, tak mi to načte i prázdný znak enter, který mi tam dělá pak bordel a je potřeba po int napsat sc.nextln() a přes parse to už řešit nemusím? Pochopil jsem to správně?

 
Odpovědět
19.8.2016 12:49
Avatar

Člen
Avatar
:5.9.2016 16:36

Dobrý den, chci se zeptat já blbec jsem nechtěně použil možnost import java.util.Scanner to Excended
když však dám inspect a pak export from excended tak to nic neudělá
celkem mě to štve protože se teď chystám na střední a pak plnuji výšku a už chci programovat teď ať naberu Experience a navíc mě to celkem baví
pomohlo by třeba reinstal netbeanu ? myslel jsem že je to obsahovano v tom balíčku java se tak jsem to zkusil ještě jednou stáhnout ale stále to píše Unused Import, import from excluded

 
Odpovědět
5.9.2016 16:36
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na
pocitac770:5.9.2016 17:29

Vzhledem k tomu, že toho moc o programování nevíš, tak píšeš akorát obří zmatky, nad kterými by normální programátor jenom kroutil hlavou, pokud neumíš situaci popsat, tak jí můžeš třeba vyscreenovat a poslat sem

 
Odpovědět
5.9.2016 17:29
Avatar

Člen
Avatar
Odpovídá na
:5.9.2016 17:42

Prosím o smazáni, našel jsem svou chybu

Editováno 5.9.2016 17:43
 
Odpovědět
5.9.2016 17:42
Avatar
Patrik Snežnický:17.9.2016 9:36

Preco sa na vstup z klavesnice nepouzije " throws java.io.ioexception " ? ak by sa nemuseli importovat zbytocnosti ktore su nutne na nextline ma to neaky specialny vyznam ?

 
Odpovědět
17.9.2016 9:36
Avatar
Oliver Solenský:15.10.2016 22:07

Dobrý den, chtěl bych se zeptat kde se dá parsování využít a jestli není výhodnější psát rovnou bez parsování ze Stringu.

 
Odpovědět
15.10.2016 22:07
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Oliver Solenský
pocitac770:15.10.2016 23:15

Parsování je způsob, jak dostat z textu nějaké typ např. čísla. Text je pouhý text bez řekněme pro počítače důležitého významu, pouhá sekvence znaků. Číslo je už něco, s čím jde pracovat jako v matematice, např. sčítání, násobení atd. Abys pochopil rozdíl:

int cislo1 = 5;
int cislo2 = 8;
String text1 = "5";
String text2 = "8";
int cislo3 = Integer.parseInt(text1);
int cislo4 = Integer.parseInt(text2);
System.out.println(cislo1 + cislo2);
System.out.println(text1 + text2);
System.out.println(cislo3 + cislo4);

výsledek je logicky takovýto, už chápeš?

13
58
13
Editováno 15.10.2016 23:17
 
Odpovědět
15.10.2016 23:15
Avatar
Odpovídá na pocitac770
Oliver Solenský:20.10.2016 21:23

To znamená, že int cislo3 = Integer.parse­Int(text1); nakážeme, aby počítač vnímal text 1 (5) jako číslo a ne jako text?

 
Odpovědět
20.10.2016 21:23
Avatar
Jan Troják
Brigádník
Avatar
 
Odpovědět
20.10.2016 22:07
Avatar
Odpovídá na Jan Troják
Oliver Solenský:20.10.2016 22:08

Děkuji ti moc.

 
Odpovědět
20.10.2016 22:08
Avatar
Odpovídá na pocitac770
Oliver Solenský:20.10.2016 22:09

Děkuji ti za vysvětlení.

 
Odpovědět
20.10.2016 22:09
Avatar
Jan Troják
Brigádník
Avatar
 
Odpovědět
20.10.2016 22:09
Avatar
Jan Krišica
Člen
Avatar
Jan Krišica:29.10.2016 22:02

Ahoj,
zkusil jsem kalkulačku sám a udělal jsem ji takhle:

System.out.prin­tln("Zadejte první číslo:");
int a;
a = sc.nextInt();
System.out.prin­tln("Zadejte druhé číslo:");
int b;
b = sc.nextInt();
System.out.prin­tln("Součet obou čísel je:");
System.out.prin­tln(a+b);
System.out.prin­tln("Rozdíl obou čísel je:");
System.out.prin­tln(a-b);
System.out.prin­tln("Násobek obou čísel je:");
System.out.prin­tln(a*b);
System.out.prin­tln("Podíl obou čísel je:");
System.out.prin­tln(a/b);
.
Jsem totální začátečník.. Tak se mi nesmějte :-)

 
Odpovědět
29.10.2016 22:02
Avatar
Vojtěch Kovařík:1.11.2016 18:58

Ahoj, zkouším napsat Program roznásobovač, ale když zadám sc.nextLine(), tak se mi to podtrhne a program nefunguje. Nevíte co s tím?

 
Odpovědět
1.11.2016 18:58
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Vojtěch Kovařík
gcx11:1.11.2016 19:34
Scanner sc = new Scanner(System.in, "Windows-1250");
 
Odpovědět
1.11.2016 19:34
Avatar
Odpovídá na gcx11
Vojtěch Kovařík:1.11.2016 19:36

díky moc, uz to funguje :)

 
Odpovědět
1.11.2016 19:36
Avatar
rybiz
Člen
Avatar
rybiz:7.11.2016 22:23

Ahoj, pochopil jsem tedy správně že z sc.nextLine() bude vstup vždy text a nikdy jinak a já si to musím převést.
Existuje něco jako toto kdy vstup bude už číslo a já nebudu muset parsovat ?

 
Odpovědět
7.11.2016 22:23
Avatar
rybiz
Člen
Avatar
rybiz:7.11.2016 22:36

Nebo ta definice že to bude text je daná tímto

Scanner sc = new Scanner(System.in, "Windows-1250");

 
Odpovědět
7.11.2016 22:36
Avatar
Kuba
Člen
Avatar
Kuba:21.12.2016 16:21

Ahoj bando,

potřebuji poradit, chci aby mi Java vypsala horní index, na netu jsem našel jen např. 10m2, ale to asi platí pro jiný jazyk.

Předem díky za radu ;)

 
Odpovědět
21.12.2016 16:21
Avatar
Kuba
Člen
Avatar
Odpovídá na Kuba
Kuba:21.12.2016 18:27

btw. existuje nějaká tabulka na speciální znaky? Umí Java vypsat např "pí".?

 
Odpovědět
21.12.2016 18:27
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Kuba
pocitac770:21.12.2016 18:49

Horní index je záležitost textových editorů, tzn do konzole ho nijak nenapíšeš. Samotné textové znaky můžeš vypisovat tak, že do jakéhokoliv stringu napíšeš kód "\uxxxx", kde ono xxxx je kód UNICODE, pro příklad zde: https://en.wikipedia.org/…28Unicode%29#…

 
Odpovědět
21.12.2016 18:49
Avatar
Kuba
Člen
Avatar
Odpovídá na pocitac770
Kuba:21.12.2016 21:12

Jasně že se zadává jako unicode, nejdříve myslet, pak se ptát... diky ;)

 
Odpovědět
21.12.2016 21:12
Avatar
Lesní Muž
Člen
Avatar
Odpovídá na Jan Krišica
Lesní Muž:31.12.2016 14:12

Ahoj, možná by to neuškodilo napsat takhle:

Scanner sc = new Scanner(System.in,"windows-1250");
        System.out.println("Zadejte první číslo: ");
        float a = Float.parseFloat(sc.nextLine()); //float místo int proto, protože zahrnuje desetinná čísla, kdybys použil int místo float, tak při dělení třeba 5/2 by ti vyšel výsledek 2 (!)... když použiješ float, vyjde ti 2.5 :), u ostatních výsledků ti to vypíše např. "násobení 10.0, součet 7.0....
        System.out.println("Zadejte druhé číslo:");
        float b = Float.parseFloat(sc.nextLine());
        System.out.println("Součet obou čísel je:");
        System.out.println(a+b);
        System.out.println("Rozdíl obou čísel je:");
        System.out.println(a-b);
        System.out.println("Násobek obou čísel je:");
        System.out.println(a*b);
        System.out.println("Podíl obou čísel je:");
        System.out.println(a/b);
 
Odpovědět
31.12.2016 14:12
Avatar
Tomáš Novotný:17.1.2017 17:24

Hmmmmm........... Nevíte co mám za chybu ? Nemohu si poradit :(
https://ctrlv.cz/ski2

 
Odpovědět
17.1.2017 17:24
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Tomáš Novotný
pocitac770:17.1.2017 21:16

Tak koukni se na to, kam co kopíruješ. Zkus přehlédnout na stránce vše, co je tam napsáno šedě, tzn. komentáře. Zbytek je přesně to, co tady bylo napsáno, právě to jsi tak měl upravit (v minulé lekci bylo i japsáno, ať si klidně ty komentáře pro začátečnickou přehlednost smažeš).

 
Odpovědět
17.1.2017 21:16
Avatar
Martin Nebesář:23.1.2017 12:19

Ahoj, v cem je prosim chyba? Zkousel jsem kod vepisovat rucne, pote i kopirovat z navodu, ale stale hlasi jednu a tu samou chybu a uz si vazne nevim rady.

https://www.dropbox.com/…12.16.09.png?dl=0

 
Odpovědět
23.1.2017 12:19
Avatar
 
Odpovědět
23.1.2017 12:33
Avatar
Odpovídá na Martin Nebesář
Neaktivní uživatel:23.1.2017 12:40

Není definovaná proměnná sc. Vždyť ti to i dvakrát červeně podtrhlo.

Scanner sc = new Scanner(System.in, "Windows-1250");
Editováno 23.1.2017 12:40
Odpovědět
23.1.2017 12:40
Neaktivní uživatelský účet
Avatar
Martin Nebesář:23.1.2017 12:45

Mockrat dekuji. Uz funguji oba dva ;)

 
Odpovědět
23.1.2017 12:45
Avatar
Neaktivní uživatel:25.1.2017 20:44

Chápu správně to parsování, že pokud by se výstup rovnal 2x vstup a vstup by byl String s tím, že uživatel zadá číslo, tak to číslo nebude vynásobeno, ale bude napsáno 2x za sebou?

Odpovědět
25.1.2017 20:44
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:25.1.2017 21:03

Nebo je to proto, že sc.nextLine() vypisuje jenom String (vypisuje?)?

Odpovědět
25.1.2017 21:03
Neaktivní uživatelský účet
Avatar
Erik Báča
Člen
Avatar
Odpovídá na Neaktivní uživatel
Erik Báča:26.1.2017 9:39

Parsování je prostě převod datového typu na jiný.

Odpovědět
26.1.2017 9:39
Když mi dáš mínus, napiš proč!
Avatar
Odpovídá na Erik Báča
Erik Šťastný:26.1.2017 10:11

S tím bych si dovolil nesouhlasit, parsování je způsob jak nějaký zhluk informací zformátovat a dostat určitou strukturu nebo informace, které dávají smysl, aspoň tak bych to popsal já.

Když dostaneš XMLko s 1k řádky a ty z něj chceš hodnotu u toho a toho klíče tak "parsuješ XMLko"

opravte mě pokud se pletu :)

 
Odpovědět
26.1.2017 10:11
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
pocitac770:26.1.2017 11:55

Násobení je matematická operace, sčítání taktéž. To se používá u čísel (int, float, atd.), pokud chceš ze Stringu dostat číslo, musíš ho naparsovat.
U tringu si to pleteš s tím, že je použité stejné znaménko (+), ale nejde o sčítání (Kolik se rovná jabko + červ? No přeci shnilé jabko, to ví i to nejzákladnější IDE), nýbrž o spojování řetěců, které funguje vnitřně úplně jinak. Tudíž ne, negeneralizuj, to, že použiješ jedno znaménko ve 2 úplně jiných situacích neznamená, že tak můžeš použít i podobné znaménko, které má v jedné z tch situací užití.

 
Odpovědět
26.1.2017 11:55
Avatar
Odpovídá na pocitac770
Neaktivní uživatel:26.1.2017 13:34

V druhé části jsme každé myslel něco jiného, ale tak nejspíš jsem to již pochopil.

Právě ze Stringu vytáhnout číslo nemůžu, ale co metoda sc.nextInt() místo sc.nextLine()?
To už bych parsovat nemusel?

Odpovědět
26.1.2017 13:34
Neaktivní uživatelský účet
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
pocitac770:26.1.2017 22:22

Ano, ono to parsování je ve skutečnosti (když se koukneš na "zdrojáky" samotné javy) někde v té metodě zahrnuto.

 
Odpovědět
26.1.2017 22:22
Avatar
Oskar Nový
Člen
Avatar
Odpovídá na didoonly1999
Oskar Nový:31.1.2017 14:08

nextLine() jde pouze na String. A máš tam Scanner sc = new Scanner(System.in, "Windows-1250");
nebo nechybí tam import?

 
Odpovědět
31.1.2017 14:08
Avatar
fusshoku
Člen
Avatar
fusshoku:4.2.2017 11:21

Ahoj, chtěl bych se zeptat, jak spustit vytvořený program přímo z počítače. Hledal jsem ve složce s programem soubor, co by měl příponu .exe, ale nic jsem nenašel.

 
Odpovědět
4.2.2017 11:21
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na fusshoku
pocitac770:4.2.2017 12:32

V Javě nenarazíš na .exe soubory, používá se přípona .jar. Aby jsi tento soubor získal, musíš dát u projectu "Build", následně se ti v složce s projektem objeví složka "dist", tam ten soubor bude. Nejde ho ale rozkliknout klasicky, musíš si v oné složce otevřít příkazovou řádku (SHIFT + pravé tlačítko myši) a tam napsat "java -jar TvujSoubor.jar", kde TvujSoubor.jar je název onoho souboru.

 
Odpovědět
4.2.2017 12:32
Avatar
fusshoku
Člen
Avatar
Odpovídá na pocitac770
fusshoku:4.2.2017 15:37

Jojo, díky moc :)

 
Odpovědět
4.2.2017 15:37
Avatar
Matěj Vondráček:26.2.2017 20:10

Ok mám malý problém-Java neidentifikuje kód Scanner a napíše mi to: Exception in thread "main" java.lang.Run­timeException: Uncompilable source code - cannot find symbol
symbol: class Scanner , Co mám dělat :(

 
Odpovědět
26.2.2017 20:10
Avatar
Odpovídá na Matěj Vondráček
Neaktivní uživatel:26.2.2017 22:54

Nechybí ti náhodou import?

Odpovědět
26.2.2017 22:54
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Matěj Vondráček:27.2.2017 20:09

Jo chyběl, děkuji za odpověď, už to běží :-)

 
Odpovědět
27.2.2017 20:09
Avatar
Lukáš Chalupa:28.2.2017 18:15

Chci upozornit že zdvojnásobovač nefunguje ani když jsem si ho vypsal sám a ani stažený od tebe.

 
Odpovědět
28.2.2017 18:15
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lukáš Chalupa
David Čápka:28.2.2017 18:16

Ale funguje, buď jsi udělal nějakou chybu nebo se ti to špatně překládá.

Odpovědět
28.2.2017 18:16
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na David Čápka
Lukáš Chalupa:28.2.2017 18:18

pořád mi to psalo chybu a najednou to funguje.asik je to tím že jsem začátečník omlouvám se :)

 
Odpovědět
28.2.2017 18:18
Avatar
Eva Kohoutová:2.3.2017 22:54

Ahoj, chtěla jsem se zeptat, proč mi kalkulačka při výpočtech hází nesmyslně mnoho desetinných čísel. Použila jsem stejná čísla jako v článku, ale třeba rozdíl jsem dostala 0,42000008. Neporadil byste mi prosím někdo, kde může být problém?
Předem díky :)

 
Odpovědět
2.3.2017 22:54
Avatar
Michal Pácal:4.3.2017 13:24

Ahoj, tohle je tak trochu problém způsobený používáním typu float. Je to způsobeno tím, jak se v paměti floating point ukládá, ne programem. Jestli se chceš dozvědět víc: Wikipedia: Floating point

 
Odpovědět
4.3.2017 13:24
Avatar
Daniel Rodr
Člen
Avatar
Daniel Rodr:5.3.2017 23:49

Výborný kurz, díky za něj! Naprogramoval jsem si kalkulačku přelidnění Země, bohužel jsem narazil na maximální hodnotu, kterou data typ int zvládá (tj. 2147483647). A lidiček už je tu o něco málo víc :) Ale mám i tak radost.

 
Odpovědět
5.3.2017 23:49
Avatar
Lukáš Vítek:8.3.2017 20:22

Ahoj, chtěl jsem se zeptat, proč při zdvojnásobovači i kalkulačce mi spuštění hodí pouze první 2 řádky, tedy číslo zadané, ale jeho dvojnásobek už se mi neukáže? Stejně tak při kalkulačce, vyhodí mi to první řádek vítejte v kalkulačce, druhý řádek číslo a po něm už nic. NetBeans mi žádnou chybu nehází, jen nezobrazí zbytek.
Díky

 
Odpovědět
8.3.2017 20:22
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Lukáš Vítek
krepsy3:8.3.2017 22:02

Dej nám kód, jak bychom mohli zjistit, proč ti to nevalí, kdyžse neůžeme podívat na kód? Zkoušel jsi stáhnout autorský kód a fungoval ti?

Odpovědět
8.3.2017 22:02
Programátor je stroj k převodu kávy na kód.
Avatar
Lukáš Vítek:8.3.2017 23:26

Už vše ok, reinstaloval jsem NetBeans a vše šlape ok. Ale Díky :-)

 
Odpovědět
8.3.2017 23:26
Avatar
Karel Maryško:31.3.2017 21:13

Ahoj, pokud napíši do NetBeans sc Scanner tak se mi to hned začne měnit v kurzívu/nakloněné písmo a aplikace nejde spustit. Jak to mám změnit?
PS: Dříve mi to tento problém nedělalo

 
Odpovědět
31.3.2017 21:13
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Karel Maryško
gcx11:31.3.2017 21:53

Ahoj, máš tam přidaný import?

import java.util.Scanner;

A píše to takto:

Scanner sc = new Scanner(System.in, "Windows-1250");
 
Odpovědět
31.3.2017 21:53
Avatar
Odpovídá na gcx11
Karel Maryško:1.4.2017 11:15

díky chyběl mi import

 
Odpovědět
1.4.2017 11:15
Avatar
Karel Maryško:2.4.2017 10:59

Ahoj nevíte někdo, co je tady špatně?
package papousek.pkg2;

import java.util.Scanner;

public class Papousek2 {

public static void main(String[] args) {

Scanner sc = new Scanner(System­.in,"Windows1250");

System.out.prin­tln("Ahoj jsem virtuální papouček Lóra");
System.out.prin­tln("Napiš něco:");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.prin­tln(vystup);
}

}

 
Odpovědět
2.4.2017 10:59
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Karel Maryško
gcx11:2.4.2017 11:45

Ahoj, máš třídu Papousek2 v souboru Papousek2.java?

 
Odpovědět
2.4.2017 11:45
Avatar
Odpovídá na gcx11
Karel Maryško:2.4.2017 12:56

A tady?
package papousek;
import java.util.Scanner;

public class Papousek {

public static void main(String[] args) {

Scanner sc = new Scanner (System.in,"Win­dows1250");
System.out.prin­tln("Ahoj jsem virtuální papušek Lóra a radá opakuji!");
System.out.prin­tln("Napiš něco");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.prin­tln(vystup);
}

}

 
Odpovědět
2.4.2017 12:56
Avatar
Odpovídá na Karel Maryško
Karel Maryško:2.4.2017 12:59

už dobrý díky moc

 
Odpovědět
2.4.2017 12:59
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Karel Maryško
gcx11:2.4.2017 15:55

Co bylo řešení problému?

 
Odpovědět
2.4.2017 15:55
Avatar
Odpovídá na gcx11
Karel Maryško:2.4.2017 16:35

Měl jsem tam Winodws1250 a správně je Windows-1250.

 
Odpovědět
2.4.2017 16:35
Avatar
Lasvit
Člen
Avatar
Odpovídá na Karel Maryško
Lasvit:9.4.2017 1:45

Používej </> od toho to tu je :)

 
Odpovědět
9.4.2017 1:45
Avatar
Maroš Škumát:14.4.2017 19:11

Ja som to robil s double pre viac desatinných miest

Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Vitajte v kalkulačke!");
        System.out.println("Zadaje prvé číslo:");
        double a = Float.parseFloat(sc.nextLine());
        System.out.println("Zadajte druhé číslo:");
        double b = Float.parseFloat(sc.nextLine());
        double súčet = a + b;
        double rozdiel = a - b;
        double súčin = a * b;
        double podiel = a / b;
        System.out.println("Súčet:" + súčet);
        System.out.println("Rozdiel:" + rozdiel);
        System.out.println("Súčin:" + súčin);
        System.out.println("Podiel:" + podiel);
        System.out.println("Ďakujem za použitie kalkulačky :)");
 
Odpovědět
14.4.2017 19:11
Avatar
Jana Morče
Člen
Avatar
Jana Morče:26.5.2017 12:23

Ahoj, nefunguje mi import - import java.util.Scanner (Papoušek). Zápis tak nevykonává svoji funkci, neopakuje texty a zobrazují se pouze textové výstupy. Chybové hlášky - illegal start of expression, not a statement. Nevím co s tím. Děkuji moc za radu..

 
Odpovědět
26.5.2017 12:23
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Jana Morče
pocitac770:26.5.2017 14:27

Nesmíš to napsat do kódu, nýbrž nahoru, těsně pod package TvujProgram

 
Odpovědět
26.5.2017 14:27
Avatar
Jiří Adamec:7.6.2017 22:26

Ahoj. Prosím o nějakej typ, jak při spuštění skočit přímo do "programu". Spustím program, začnu psát třeba čísla do kalkulačky a kouám, že to píšu do kódu.

Odpovědět
7.6.2017 22:26
Neříkej, že to nejde. Často se najde někdo, kdo to neví a udělá to.
Avatar
Peter Butora
Člen
Avatar
Odpovídá na Jana Morče
Peter Butora:19.6.2017 19:32

Přesně jak říkal pocitac770 .. importy dáváš pod "package název"
a taky nezapomínej na středník ;-)

Odpovědět
19.6.2017 19:32
Péťa
Avatar
Patrik Holubář:13.7.2017 8:23

V čem je, prosím, chyba ?

 
Odpovědět
13.7.2017 8:23
Avatar
Odpovídá na Patrik Holubář
Patrik Holubář:13.7.2017 8:31

Už vyřešeno.

Chyběl mi tam import java.util.Scanner;

 
Odpovědět
13.7.2017 8:31
Avatar
Michal Stisek:23.7.2017 18:50

Super článek tak jako předešlé. Java mě díky tomu baví čím dál více. Díky autorovi za sdílení dovedností.

Odpovědět
23.7.2017 18:50
Jít pořád dál má smysl
Avatar
Magda Stankova:26.7.2017 9:30

Děkuji za lekci, baví mě se učit nové věci

 
Odpovědět
26.7.2017 9:30
Avatar
Libor Ripper :8.8.2017 8:23

Baví mě to !

 
Odpovědět
8.8.2017 8:23
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()

Odpovědět
8.8.2017 11:00
_________________________
Avatar
Odpovídá 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.

Odpovědět
11.8.2017 20:59
Nikdy sa nevzdávaj a choď si za svojim snom.......
Avatar
Atrament
Super redaktor
Avatar
Odpovídá 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.

 
Odpovědět
11.8.2017 22:11
Avatar
Odpovídá na Atrament
Filip (animátor/programator):11.8.2017 22:15

Ok ďakujem ti za odpoveď

Odpovědět
11.8.2017 22:15
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ě.

 
Odpovědět
12.9.2017 12:58
Avatar
Odpovídá 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 :-)

 
Odpovědět
12.10.2017 11:28
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! :-)

 
Odpovědět
4.11.2017 17:43
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 :/

 
Odpovědět
7.1.2018 19:49
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Michal Vícha
vajkuba1234:7.1.2018 20:52

Ukaz svuj kod.

Odpovědět
7.1.2018 20:52
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
Štefan Jerga:12.1.2018 14:46

Super vysvetlené :). Po vysvetlení parsovania som vedel naprogramovať kalkulačku bez pomoci seriálu.

 
Odpovědět
12.1.2018 14:46
Avatar
Mrkev007
Člen
Avatar
Mrkev007:19.1.2018 19:09

Dekuji moc mi tento clanek pomohl.

 
Odpovědět
19.1.2018 19:09
Avatar
Petr Zajac
Člen
Avatar
Odpovídá na Michal Vícha
Petr Zajac:29.1.2018 18:38

Michal Vícha.

Jediné co mě napadá proč ti to nefunguje je že ti tam chybí definice "třídy" scanner.
Když mrkneš o blok kódu výš tak to tam je.
Takže celý "papoušek" by měl vypadat následovně ...


package papousek;

import java.util.Scanner; //tenhle řádek ti tam chybí !

public class Papousek {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.prin­tln("Napiš něco: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!!!";
System.out.prin­tln(vystup);
}

}


Snad to pomůže :-)
Petr Zajac

 
Odpovědět
29.1.2018 18:38
Avatar
Jan Muroň
Člen
Avatar
Jan Muroň:8.3.2018 19:37

Ahoj, na výstupu se mi stále přehazuje řádek pro zadání vstupu s řádkem výpisu výsledku.

run:
Tento program vynásobí číslo dvěmi.
Napiš číslo:
8
4
BUILD SUCCESSFUL (total time: 9 seconds)

Scanner sc = new Scanner(System­.in,"utf-8");
System.out.prin­tln("Tento program vynásobí číslo dvěmi.");
System.out.prin­tln("Napiš číslo:");
String s = sc.nextLine();
int a = Integer.parse­Int(s);
a=a*2;
System.out.prin­tln(a);

 
Odpovědět
8.3.2018 19:37
Avatar
Mango
Redaktor
Avatar
Odpovídá na Jan Chalupa
Mango:8.3.2018 19:44

zkus místo

Scanner sc = new Scanner(System.in, "Windows-1250");

toto

Scanner sc = new Scanner(System.in, "UTF-8");
Odpovědět
8.3.2018 19:44
Nezáleží na věku ale na vědomostech ;D
Avatar
Jan Muroň
Člen
Avatar
Odpovídá na Jan Muroň
Jan Muroň:8.3.2018 20:11

Tak nevím co se stalo, ale po zavření a otevření zdrojového souboru se vše vyřešilo. ;)

 
Odpovědět
8.3.2018 20:11
Avatar
Odpovídá na Michal Vícha
Jiří Nežerný:12.3.2018 12:59

A nezapomněl jsi na import java.util.Scanner?

 
Odpovědět
12.3.2018 12:59
Avatar
Rastislav Petrák:27.3.2018 16:39

Vse funguje, akorat si furt pletu velke a male pismena (treba parseInt a println-porad pisu printLn.)-chce to cvik. Parsovani je uzitecne.

 
Odpovědět
27.3.2018 16:39
Avatar
Petr Lepič
Člen
Avatar
Petr Lepič:13.4.2018 11:53

Ahoj, zdravím všechny,

mám jeden dotaz.

program papušek funguje, ale píše mi to u řádku 8

Scanner sc = new Scanner(System.in, "Windows-1250");

Resource leak: 'sc' is never closed papousek.java /papousek/src/pa­pousek line 8 Java Problem

Nevíte někdo jak to uzavřít?
jinak Windows-1250 je druh písma?
Díky

 
Odpovědět
13.4.2018 11:53
Avatar
Odpovídá na Petr Lepič
Jakub Longauer:26.6.2018 13:58

Windows-1250 je použité kódovanie pre jednotlivé znaky. Iné kódovanie pre znaky je napríklad UTF-8.
Resource leak sa dá riešiť dvoma spôsobmi:

  1. Zapíše sa sc.close(); na koniec, ale pozor, toto uzavrie celý Scanner sc, čiže už sa ďalej nebude dať využiť. Ale pozor, zároveň to ukončí aj prácu so System.in, čo v tomto prípade by vadiť nemalo, avšak v zložitejších aplikáciach by to mohlo spôsobiť problémy
  2. Druhé riešenie je využitie ExceptionsHandleru pomocou try-finally

Vtedy by sa dalo napísať niečo takéto:

package onlineapp;

import java.util.Scanner;
public class Program {
public static void main(String[] args) {

try{
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.prin­tln("Napiš něco: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.prin­tln(vystup);
}
finally{
sc.close();
}

}
}

 
Odpovědět
26.6.2018 13:58
Avatar
Daniel Klas
Člen
Avatar
Daniel Klas:4.7.2018 12:37

Ahoj,

mám naistalovaný NetBeans IDE 8.2.
Pokud naprogramuji PrvníAplikace, nebo Výpis a dám Run Project, proběhne vše OK.
Ale pokud naprogramuji Papouška nebo Kalkulačku, vypíše se pouze část textu např. -

Ahoj, jsem virtuální papoušek Lóra, rád opakuji!
Napiš něco:Jsem papoušek,

Dál nic. V pravo dole Papousek (run) - v tabulce hláška running

Díky za rady

 
Odpovědět
4.7.2018 12:37
Avatar
Mija
Člen
Avatar
Mija:28.9.2018 11:48

Zdravím,
mám stejnou obtíž jako Daniel Klas. Při spuštění Papouska se zobrazí jen text

Ahoj, jsem virtuální papoušek Lóra, rád opakuji!
Napiš něco:

a dole stále running.

package papousek;

import java.util.Scanner;

public class Papousek {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.prin­tln("Napiš něco: ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + "," + vstup + "!";
System.out.prin­tln(vystup);
}

Kontrolovala jsem to vícekrát a nemůžu tu chybku najít (možná jenom nevidím :-) ). Poradíte? Díky

 
Odpovědět
28.9.2018 11:48
Avatar
zitekv
Člen
Avatar
Odpovídá na Mija
zitekv:28.9.2018 13:07

Program čeká na vstup uživatele, proto pořád běží. Napiš do konzole text, ať jej může načíst a vypsat.

 
Odpovědět
28.9.2018 13:07
Avatar
Mija
Člen
Avatar
Mija:28.9.2018 14:28

Jo aha :-) , už je to OK. Díky.

 
Odpovědět
28.9.2018 14:28
Avatar
Zakk
Člen
Avatar
Zakk:24.10.2018 19:45

Z jakého důvodu jednoduše nepoužijeme metodu nextInt() ?
A pro co je důležité zadat do konstruktoru znakovou sadu? ( vždy jsem to psal bez ní a zatím jsem na žádný problém nenarazil).

Možná se to tu už řešilo, ale nenarazil jsem na to ( tak pokud to sem píšu znova, tak se omlouvám).

 
Odpovědět
24.10.2018 19:45
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zakk
David Čápka:24.10.2018 19:55

Jelikož se na to stále ptáte, připsal jsem to do článku proč to nemáte dělat.

Odpovědět
24.10.2018 19:55
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Jakub Sionn Čonka:3.11.2018 8:32

Rád bych se zeptal proč mi to hazí tuhle chybovou hlášku ? jak u Papouška tak i u zdvojnásobení. ...

 
Odpovědět
3.11.2018 8:32
Avatar
zitekv
Člen
Avatar
Odpovídá na Jakub Sionn Čonka
zitekv:3.11.2018 10:22

Přímo ti to píše, že jsi zapomněl na import třídy Scanner

import java.util.Scanner;

NetBeans by ti to měl podtrhnout a vlevo ukázat vykřičník.

 
Odpovědět
3.11.2018 10:22
Avatar
 
Odpovědět
3.11.2018 17:33
Avatar
Jakub H
Člen
Avatar
Odpovídá na zitekv
Jakub H:9.11.2018 20:09

Zdravím. Kde najdu konzoli, do které mám text u papouska zapsat, aby správně fungoval?
Děkuji za odpověď.

 
Odpovědět
9.11.2018 20:09
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Jakub H
pocitac770:10.11.2018 3:01

Píšeš do stejného "okna", kde vidíš výstup programu, jen u většiny IDE do něj musíš nejprve kliknout, aby získalo focus, pak by to mělo jít, vždy po napsání "odeslat" enterem

 
Odpovědět
10.11.2018 3:01
Avatar
Jakub H
Člen
Avatar
Jakub H:10.11.2018 13:24

Nechápu... vše bych měl mít u papouška správně:
package papousek;

import java.util.Scanner;

public class Papousek {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.prin­tln("Ahoj, jsem virtuální papoušek Lóra, rád opakuji!");
System.out.prin­tln("Napiš něco: Ahoj ");
String vstup;
vstup = sc.nextLine();
String vystup;
vystup = vstup + ", " + vstup + "!";
System.out.prin­tln(vystup);
}

}
Ale stále to nefunguje...

 
Odpovědět
10.11.2018 13:24
Avatar
Danielak
Člen
Avatar
Danielak:15.11.2018 13:18

Ahoj, díky za tyto stránky; jsem začátečník a zatím to celkem chápu, kromě dvou věcí(možná se v tom zbytečně vrtám) ..co znamená "objekt uživatel" (... někde očekáváme objekt uživatel a přijde nám tam místo toho desetinné číslo, odhalí se chyba až za běhu...) a to, že i uživatel musí při vstupu do konzole v desetinném čísle použít tečku. Díky:)

 
Odpovědět
15.11.2018 13:18
Avatar
Marek
Člen
Avatar
Odpovídá na Jakub H
Marek:19.11.2018 23:58

Co ti to píše ?

 
Odpovědět
19.11.2018 23:58
Avatar
Odpovídá na Jakub H
Marek Jakoubek:24.12.2018 16:17

Za A) V kodu "System.out.prin­tln("Napiš něco: Ahoj");", nepiš to "Ahoj".
Za B) V kodu "vystup = vstup + ", " + vstup + "!", napiš " vstup + ", " + vstup + "!" do závorek.

 
Odpovědět
24.12.2018 16:17
Avatar
Feri Laky
Člen
Avatar
Odpovídá na Marek Jakoubek
Feri Laky:19.1.2019 18:08

Mne to beží bez problému i bez závorek!

 
Odpovědět
19.1.2019 18:08
Avatar
T3RkaG
Člen
Avatar
T3RkaG:22.1.2019 8:29

Ahoj. Prosím o radu. Mám problém se zobrazením výstupu projektu. V současné chvíli jsem u Papouška. Předešlé úkoly šly zobrazit do pár sekund. Ale teď to píše stále running klidně 10, 20 minut a výsledek nikde.
Je nějaký problém v nastavení? Zkoušela jsem i na jiném pc.
Děkuji za odpověď

 
Odpovědět
22.1.2019 8:29
Avatar
zitekv
Člen
Avatar
Odpovídá na T3RkaG
zitekv:22.1.2019 9:43

Podle všeho program čeká na vstup uživatele z konzole. Jak už tu Počítač 770 psal (7 komentářů zpět) je potřeba do okna výstup (output) kliknout, zapsat text a potvrdit Entrem.
Pokud toto není ten případ, pak sem vlož kód.

 
Odpovědět
22.1.2019 9:43
Avatar
T3RkaG
Člen
Avatar
T3RkaG:22.1.2019 10:19

Díky moc. Pomohlo! :-)

 
Odpovědět
22.1.2019 10:19
Avatar
Ondra Hájek
Člen
Avatar
Ondra Hájek:29.1.2019 10:08

Ahoj, super web, díky.
Mám problém s výsledky kalkulačky, vyšlo mi toto:

Vítejte v kalkulačce.
Zadejte první číslo:
3.14
Zadejte druhé číslo:
2.72
součet: 5.86
rozdíl: 0.42000008
součin: 8.5408
podíl: 1.1544118
BUILD SUCCESSFUL (total time: 8 seconds)

Součet a součin je OK. Podíl je zaokrouhlen, to by ještě šlo. Ale co ten rozdíl?
Díky za odpověď, Ondra.

 
Odpovědět
29.1.2019 10:08
Avatar
Matěj Bína
Člen
Avatar
Odpovídá na Ondra Hájek
Matěj Bína:18.3.2019 16:09

Ona destinná čísla nezavařují jen mozky žáků základních škol, počítače je také extra rády nemají.
Nějaké povídání o tom jsem našel třeba tady.

 
Odpovědět
18.3.2019 16:09
Avatar
JKV Studio
Člen
Avatar
Odpovídá na Ondra Hájek
JKV Studio:22.6.2019 11:25

Ondra Hájek
Ahoj Ondro, zkus sem hodit kód. :-)

 
Odpovědět
22.6.2019 11:25
Avatar
Jakub Kočan
Člen
Avatar
Jakub Kočan:6.7.2019 11:26

Chapem spravne že znamienko + na konci System.out.println nam dovoluje spajat
text s ciselnou operaciou ktoru v kalkulacke vykonala a bez toho znamienka + by sme nemohli spojit čiselny vysledok s textom aby sa nam zobrazovalo spolu naraz
ale vždy bez toho + by nam zobrazovalo jednu operaciu bud text alebo vysledok danej matematickej operacie nato to sluzi

 
Odpovědět
6.7.2019 11:26
Avatar
Adriana Tessa Zwanziger:12.7.2019 15:35

Windows-1250 / co je toto.....

 
Odpovědět
12.7.2019 15:35
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na Adriana Tessa Zwanziger
Jaroslav Smrž:12.7.2019 15:46

windows-1250 je způsob kódování.

Editováno 12.7.2019 15:48
Odpovědět
12.7.2019 15:46
/* Life runs on code */
Avatar
Odpovídá na Jaroslav Smrž
Adriana Tessa Zwanziger:12.7.2019 16:14

Nerozumiem preco je v " ", ak sa nikde nezobrazuje, asi je dolezite to tam dat, bez toho mi to nejde.... a to sa pise pri takom kode vzdy alebo len ked chcem pouzit Slovansky jazyk?, mam sa to ucit, alebo mi to netreba

 
Odpovědět
12.7.2019 16:14
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na Adriana Tessa Zwanziger
Jaroslav Smrž:12.7.2019 16:28

To je kvůli výstupu textu s diakritikou. Jazyková sada Windows-1250 je dnes překonána kódováním UTF-8 (až 16,000,000 znaků). O znakových sadách bys měla mít trochu přehled, ale nejpodstatnější to není. Když budeš mít špatnou jazykovou sadu, hned to poznáš. Místo háčků a čárek se ti budou objevovat různé znaky.

Odpovědět
12.7.2019 16:28
/* Life runs on code */
Avatar
Odpovídá na Jaroslav Smrž
Adriana Tessa Zwanziger:12.7.2019 16:42

uz rozumiem, dakujem moc krasne ♥

 
Odpovědět
12.7.2019 16:42
Avatar
Jakub Mainuš:31.7.2019 12:47

Ahoj, mám takový dotaz, dostal jsem se ke 3. lekci a už od programu papoušek mi strašně dlouho trvá než se program vytvoří, napíšu kód, dám spustit projekt, vypíší se první dva řádky, ty nejjednodušší a zbytek se neobjeví a pořád mi to píše, "program is running" a nechal jsem to běžet asi 40 minut a pořád nic, nevíte někdo co s tím ?

 
Odpovědět
31.7.2019 12:47
Avatar
Dominik Horut:14.8.2019 16:03

Ahoj, stalo se také někomu, že když např. spouštěl program s číslem 56 vše proběhlo v pohodě ale číslo se nezobrazilo?

 
Odpovědět
14.8.2019 16:03
Avatar
Víťa Š.
Člen
Avatar
Odpovídá na Jakub Kočan
Víťa Š.:25.8.2019 22:09

Ano znaménko + spojuje více textů s proměnnými.
Nebere + jako součet, neboť je v kulakých závorkách
System.out.prin­tln("Rozdíl:" + minus);
V PHP se používá na spojení tečka .
echo ("Rozdíl:" . $minus);
Při definování proměnné float soucet = a + b; závorky () nejsou, proto se proměnné sečtou.

Odpovědět
25.8.2019 22:09
Život by byl mnohem snazší, kdybychom k němu měli zdrojový kód.
Avatar
Víťa Š.
Člen
Avatar
Odpovídá na Adriana Tessa Zwanziger
Víťa Š.:25.8.2019 22:11

Použití kódování UTF-8 je jistota, že nevypadnou české znaky. Osobně používám vždy:
Scanner sc = new Scanner(System.in, "UTF-8");

Odpovědět
25.8.2019 22:11
Život by byl mnohem snazší, kdybychom k němu měli zdrojový kód.
Avatar
Marek Navrátil:9.10.2019 14:34

Ahoj, jsem úplný nováček.
V programu papoušek tento kód import java.util.Scanner; napíši jen tak pod package? Dále public class main mám tedy ručně přepsat na papoušek? Zkoušel jsem to tam celé napsat ručně ale nefunguje to.
díky
Marek

 
Odpovědět
9.10.2019 14:34
Avatar
Odpovídá na Marek Navrátil
Michal Šmahel:9.10.2019 15:50

Ahoj, doporučil bych to přečíst si první článek této série.

Nejprve je třeba založit nový projekt. Spouštěcí třída by se ti měla vygenerovat automaticky. Do ní potom už píšeš zdrojový kód, který chceš. Importy se dávají nad blok se třídou, zpravidla pod balíček (package).

Příště prosím pro vložení zdrojového kódu použij druhou ikonku zleva nad polem pro psaní komentáře.

Odpovědět
9.10.2019 15:50
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Tomáš Weiter:27.10.2019 9:53

Velmi uzitecna lekce.

 
Odpovědět
27.10.2019 9:53
Avatar
Aleš Fiala
Člen
Avatar
Aleš Fiala:23.11.2019 20:37

Neví někdo zda mám tvořit v Java with Gradle, Java with Maven nebo Java with Int? Z jistých důvodů aktuálnosti jsem si stáhl nejnovější verzi NetBeans a teď budu mít to poslední určitě napsaný špatně protože se mi tam tvoří nový projekt a stále mi to neodpovídá. Dík za radu.

 
Odpovědět
23.11.2019 20:37
Avatar
Aleš Fiala
Člen
Avatar
Odpovídá na Aleš Fiala
Aleš Fiala:23.11.2019 20:40

To je vlastně Java with Ant

 
Odpovědět
23.11.2019 20:40
Avatar
Aleš Fiala
Člen
Avatar
Aleš Fiala:26.11.2019 16:21

Abych si to ujasnil, to Windows-1250 ošetřuje diakritiku aby to ve Windows příkazovém řádku nevypsalo nesmyslné s****y?

 
Odpovědět
26.11.2019 16:21
Avatar
Rateo
Člen
Avatar
Odpovídá na Jakub Mainuš
Rateo:26.11.2019 22:33

Ahoj,
pro tebe to asi přínos už nebude vzhledem ke stáří dotazu, ale pro ostatní ještě může..."program" totiž čeká až napíšeš dole do console text (u papouška) a nebo číslo (u zdvojnásobovače).

 
Odpovědět
26.11.2019 22:33
Avatar
Nyssa
Člen
Avatar
Nyssa:22. února 19:37

Celkem bych uvítala aktualizaci výuky, protože Net Beans prošel určitým vývojem a postup v jednotlivých oknech se tedy mírně liší od návodu... Nejspíš zkusím někde splašit starou verzi a 11.2 si nechám na "až to budu umět" :D.

 
Odpovědět
22. února 19:37
Avatar
PatrikSubjak
Člen
Avatar
PatrikSubjak:7. března 17:22

Tak len som sa začal učiť programovanie v Jave. Začal som pred 3 ma dnami na Codeacademy každopádne mal som problém s dokonalym porozumením OOP a teda som si našiel tento návod. Hneď ako prvé som musel googlit prečo sa používa float miesto double. A tiež som akosi mimo z použitia scannera,povoluje nám to vlastne Font Windows-1250 aby tam fungovala CZ/SK diakritika ? Neviem,idem dalej a dúfam že to časom pochopím.

Odpovědět
7. března 17:22
What we do in life, echoes in eternity.
Avatar
Barbora Hladíková:8. března 13:45

Všechno se povedlo :) je fajn že to jde zde rozkliknout a podívat se jak to mělo být a pak si člověk uvědomí, kde udělal chybu i v maličkosti ( jako nextline a nextLine :D :D ) ale zatím super daří se :) děkuji za članek

 
Odpovědět
8. března 13:45
Avatar
Rozbita Zaluzie:16. dubna 18:00

Zajímalo by mě co přesně má znamenat "Float.parseFlo­at(sc.nextLine());" z nějakého důvodu mi to dělá problém a program potom nejde spustit

public class SimpleKalkulacka {
    public static void main(String[] args) {

        System.out.println("Vítejte v mojí kalkulačce ");
        System.out.println("Zadej prosím první číslo");
        float a = Float.parseFloat(sc.nextLine());
        System.out.println("Zadej prosím druhé číslo");
        float b = Float.parseFloat(sc.nextLine());

        float soucet = a + b;
        float rozdil = a - b;
        float soucin = a * b;
        float podil = a / b;
        System.out.println("Součet: " + soucet);
        System.out.println("Rozdíl: " + rozdil);
        System.out.println("Součin: " + soucin);
        System.out.println("Podíl: " + podil);
    }
}
 
Odpovědět
16. dubna 18:00
Avatar
Janis Lukepudis:18. dubna 13:17

Ahoj,
metoda Float.parseFlo­at() ti prevadi/parsuje text (String) na desetinna cisla (float). Dale pak metoda v parametru sc.nextLine() ti umozni ziskat vstup z konzole jako String, tj. to co napsal uzivatel.
U tebe program nepujde, protoze nikde nemas vytvorenou promennou sc, takze metoda parseFloat() nepozna, ze si ma vzit text ze vstupu.
Vytvor si promennou sc na zacatku v tele Main:

Scanner sc = new Scanner(System.in, "Windows-1250");

Diky tomu pak muzes pouzivat metody z tridy Scanner, mimojine i nextLine().

 
Odpovědět
18. dubna 13:17
Avatar
Petr Novotný:27. května 10:01

ahoj, když si spustím stažený zdvojnásobovač v NetBeans, tak vše funguje jak má. Když si ale vytvořím vlastní projekt a zkopíruji a vložím text kódu, tak mi zdvojnásobovač nefunguje. Poradíte? Díky..

 
Odpovědět
27. května 10:01
Avatar
Alesh
Překladatel
Avatar
Odpovídá na Petr Novotný
Alesh:27. května 13:36

Těžko říct, když nenapíšeš, co ti to hlásí za chybu. Nechybí ti import Scanneru?

import java.util.Scanner;
 
Odpovědět
27. května 13:36
Avatar
Lukáš Kučavík:3. července 14:39

Zatím je to snadné. Těším se na další lekce :)

 
Odpovědět
3. července 14:39
Avatar
Michal Maleňák:10. července 15:44

Super práce palec hore pro autory. Již si to po třech letech pročítám znovu a vždy mi to dá něco nového... Díky, už by to chtělo ne "jen jako" programovat ale "opravdu" už začít... tak snad se brzy uvidíme na jedné z Vašich "najelváren"

 
Odpovědět
10. července 15:44
Avatar
Martin Pýcha:29. září 19:58

Zdravím. Začínám úplně od nuly s Java jazykem a vlastně s programováním úplně.
Dělal jsem všechno podle instrukcí ale zasekl jsem na se tomto problému a nějak si nevím rady kudy dal. Mohu poprosit o radu

 
Odpovědět
29. září 19:58
Avatar
Alesh
Překladatel
Avatar
Odpovídá na Martin Pýcha
Alesh:29. září 20:43

Napiš to slovo system s velkým "s", tedy System.in.

 
Odpovědět
29. září 20:43
Avatar
Ladislav Jarkovský:27. října 9:44

Ahoj, po dlouhý době jsem se vrátil k programování a rozhodl jsem se že si zopakuji to, co už jsem se naučil. Jenže mám problém s testováním programů. Když zrovna napsaný program spustím, nic se nezobrazí. A vůbec si s tím nevím v třech předchozích programech se mi to povedlo nějakým zázrakem vyřešit. Ale když jsem stejný metody použil na zdvojnásobovač, tak to nic nezměnilo. Neví náhodou někdo, co s tím?

 
Odpovědět
27. října 9:44
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 301 zpráv z 301.