Blog

Čísla a znaky v Jave

Learn2Code tím - 28.10.2018 - Tipy a triky

V tomto článku sa spolu pozrieme na základy práce s číslami a znakmi v programovacom jazyku Java.

Čísla


Prečo používať Numbers a nie primitívne dátové typy? Ak nejaká metóda príjma ako parameter Object, tak jej neviem podsunúť primitývny dátový typ. Môžeš použiť konštanty, ako napríklad MIN_VALUE alebo MAX_VALUE. Môžeme pouívať metódy na konverziu do a z primitívnych dátových typov ako aj zo String. 

Byte b = 127;
Byte b2 = 128; //error Byte len do 127

Pre všetky typy máme metódy, ktoré z textu vedia vyloviť daný typ. Tu si treba dať pozor, lebo ak chcem zo Stringu dostať Integer – ale zadám tam text, tak to bude chyba.

String decimal = "2.5";
double d1 = Double.parseDouble(decimal);
 
decimal = "2.5a";
double d;
d = Double.parseDouble(decimal); //chyba 

Keď hovoríme o číslach, tak nemôžme nespomenúť modulo. Plus, mínus poznáme, ale modulo by nám mohlo robiť problém.

private static void modulo() {
    for(int i = 0; i < 32; i++){
        rozdajHracoviKartu(i%4,i);
    }
}
 
private static void rozdajHracoviKartu(int hrac, int karta) {
    System.out.println("rozdavam hracovi "+hrac+", kartu cislo "+karta);
}

V tomto príklade výsledok modula nebude nikdy viac ako 3 a menej ako 0. Teda sa karty rozdajú medzi všetkých hráčov v hre. Skús si to pomeniť sám.

Matematické operácie

Pre veľa matematických operácií máme triedu Math, ktorá obsahuje množstvo statických metód. Názvy sú samo vysvetľujúce, alebo si pozri nižšie komentáre:

System.out.println("a "+a+" abs "+ Math.abs(a)); //absolútna hodnota
System.out.println("b "+b+" ceil "+Math.ceil(b)); //zaokrúhli nahor
System.out.println("b "+b+" floor "+Math.floor(b)); //zaokrúhli nadol
System.out.println("b "+b+" rint "+Math.rint(b)); //klasicke 
zaokruhovanie zmen b ... vracia double hodnotu intu
System.out.println("b "+b+" round "+Math.round(b)); //klasicke 
zaokruhovanie zmen b ... vracia int alebo long ... int round(float f)
System.out.println("c "+c+" a d "+d+" max "+Math.max(c, d));
System.out.println("c "+c+" a d "+d+" min "+Math.min(c, d));



Náhodné číslo

V Math triede máme metódu random. Vracia hodnotu od 0.0 po 1.0 . Krátením vieš zvätsit a musíš pretypovať na int ak chceš celé čísla.

private static void randomNumbers() {
    int number = (int)(Math.random() * 100);
    System.out.println(number);
}

Znaky

Primitívny dátový typ char sa používa na uchovanie jedného znaku. Pri char máme tak isto možnosť použiť jeho alternatívu objektovú a to Character V jave existujú escape sekvencie. To sú znaky, teda char, pred ktorým je spätné lomítko. Tieto sekvencie majú pre kompilátor zvláštny zmysel. Neberú sa ako nejaký jednoduchý text.

\t    -  vloží tab

\b   -   vloží backspace

\n   -   vloží nový riadok

\r    -   vloží carriage return

\f    -   vloží formfeed

\'    -    vloží jednu uvodzovku

\"    -   vloží dvojitú uvodzovku

\\    -   vloží spätné lomítko


Máme množstvo pomocných metód:

Character ch3 = 'a';
System.out.println("char "+ch);
System.out.println("isLetter "+Character.isLetter(ch));
System.out.println("isDigit "+Character.isDigit(ch));
System.out.println("isWhitespace "+Character.isWhitespace(ch));
System.out.println("isUpperCase "+Character.isUpperCase(ch));
System.out.println("isLowerCase "+Character.isLowerCase(ch));
System.out.println("toUpperCase "+Character.toUpperCase(ch));
System.out.println("toLowerCase "+Character.toLowerCase(ch));
System.out.println("toString "+Character.toString(ch));

Takýmto spôsobom vieš vložiť aj špeciálne znaky z hora:System.out.println("Some \t nice text. tab");

System.out.println("Some \t\b nice text. backspace");
System.out.println("Some \n nice text. new line");
// je to niečo ako na starom písacom stroji kedy si sa presunul na začiatok riadku
//ak nedáš ale nový riadok, tak ti prepíše to čo tam už máš napísané
System.out.println("Some \r nice text. carriage return");
System.out.println("Some \r\n nice text. carriage return a new line");
System.out.println("Some \' nice text. ");


Ak chceš zadať špeciálnu hodnotu, tak musíš zadať pred daný špeciálny znak lomítko.

char uvodzovka = '''; //error
char uvodzovka = '\'';
System.out.println("Some " nice text."); //error
System.out.println("Some \" nice text.");
System.out.println("Some \ nice text."); //error
System.out.println("Some \\ nice text.");

Záver

Ak ťa zaujíma Java, tak si tu na learn2code.sk pohľadaj kurzy, ktoré sa venujú programovaniu v Jave a nauč sa viac. Ja som Jaro a dúfam sa vidíme pri ďalšom článku alebo videu.



Logo facebook

Learn2Code tím

Učíme ľudí dizajnovať, robiť webstránky a programovať. Naše prezenčné kurzy nájdeš vo viacerých mestách na Slovensku a pomocou online kurzov sa môžeš vzdelávať z pohodlia domova.


Websockety - message board

Tipy a triky

Ahoj, naposledy sme hovorili o websocketoch vo flasku. Používali sme knižnicu flask-socketio a prešli sme si základnú funkcionalitu. Táto knižnica...

Java 8

Tipy a triky

Java 8 je veľký balíček novej funkcionality oproti Java 9 a java 10. Tie sú menšie a odzrkadľujú taktiku tvorcov javy vydávať nové verzie častejšie...

Websockety vo Flasku

Tipy a triky

Websockety vo Flasku Ak si sa niekedy stretol s výrazom websocket a chcel by si sa dozvedieť, čo to vlastne je a ako sa to používa v Python aplikácii,...