Úloha 2 – Metody pro práci se znaky v řetězci

Stránky: Moodle ZČU
Kurz: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Kniha: Úloha 2 – Metody pro práci se znaky v řetězci
Vytiskl(a): Nepřihlášený host
Datum: neděle, 18. října 2026, 17.29

Úvod do úlohy

Pokud chceme pracovat s textem podrobněji, často potřebujeme zjistit jeho délku nebo přistupovat k jednotlivým znakům podle jejich pozice. Typickým příkladem je kontrola, zda má uživatelské jméno alespoň určitý počet znaků, nebo zjištění prvního písmene v řetězci. JavaScript k tomu nabízí hned několik způsobů, které se liší pohodlností, podporou speciálních případů (např. záporné indexy) i zpětnou kompatibilitou. Umět se mezi těmito možnostmi rozhodnout je důležité pro psaní jasného a spolehlivého kódu.


Teorie a principy

  1. Délka řetězce (length)

    • Vlastnost length vrací počet znaků v řetězci.

    • Hodí se pro cykly, validaci vstupů nebo zjištění pozice posledního znaku.

  2. Metoda charAt(index)

    • Vrací znak na zadané pozici.

    • Pokud je index mimo rozsah, vrátí prázdný řetězec "".

    • Funguje od začátku JavaScriptu, takže je velmi spolehlivá.

  3. Metoda at(index)

    • Modernější varianta.

    • Podporuje záporné indexy, takže -1 znamená „poslední znak“, -2 předposlední atd.

    • Pokud je index mimo rozsah, vrátí undefined.

  4. Přístup pomocí hranatých závorek []

    • Umožňuje napsat text[0] místo text.charAt(0).

    • Je stručný, ale neumí záporné indexy a u neplatné pozice vrací undefined.

    • Starší prohlížeče tuto možnost nemusí plně podporovat.


Praktické příklady kódu


Typické chyby / záludnosti

  • Záměna prázdného řetězce a undefined

    • charAt() mimo rozsah vrací "",

    • at() nebo [] mimo rozsah vrací undefined.

    • Studenti si to často pletou.

  • Snaha použít záporné indexy v hranatých závorkách nebo charAt()

  • Zapomenutí, že indexování začíná od nuly

    • jmeno.charAt(0) je první znak.

    • jmeno.charAt(jmeno.length - 1) je poslední znak.


Shrnutí

  • length → vrací počet znaků.

  • charAt(index) → spolehlivý, vrací znak nebo prázdný řetězec.

  • at(index) → moderní, podporuje záporné indexy, vrací undefined mimo rozsah.

  • [] → stručný zápis, neumí záporné indexy, vrací undefined.

  • Indexování vždy začíná od 0.

Úloha

Zadání (kontext úlohy):

Představ si, že uživatel zadává své jméno do formuláře. Potřebuješ zjistit, zda je dostatečně dlouhé, a zároveň vypsat první a poslední písmeno jména.


Cíl úlohy:

Procvičit si použití vlastnosti .length a metod/přístupu k jednotlivým znakům (charAt(), at()).


Vstupní podmínky:
  • Student pracuje pouze s nově vytvořeným souborem script.js.

  • V souboru si vytvoří proměnnou jmeno s libovolným jménem.


Požadovaný výstup:
  1. Do konzole se vypíše, kolik znaků má jméno.

  2. Do konzole se vypíše první znak jména pomocí charAt().

  3. Do konzole se vypíše poslední znak jména pomocí at(-1).


Doplňující pokyny:
  • Pamatuj, že indexování začíná od nuly.

  • Pokud by bylo jméno prázdné, první/poslední znak bude prázdný řetězec nebo undefined.

  • Nepoužívej záporný index u hranatých závorek, funguje jen s metodou .at().

Řešení úlohy

Co je zde splněno:

  • použití .length pro zjištění počtu znaků,

  • získání prvního znaku přes .charAt(0),

  • získání posledního znaku přes .at(-1),

  • výpis všech výsledků do konzole.

Vylepšení oproti začátečnické verzi:

  • šablonové řetězce (`) umožňují přehlednější spojování textu s proměnnými,

  • kód je kratší a čitelnější.

Poznámky:

  • Indexování začíná od 0, tedy charAt(0) je vždy první znak.

  • .at(-1) je výjimka – funguje i s negativními indexy, což hranaté závorky [] neumí.

  • Pokud by jmeno bylo prázdný řetězec, výsledky pro první/poslední znak budou "" nebo undefined.