Ú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
-
Délka řetězce (
length)-
Vlastnost
lengthvrací počet znaků v řetězci. -
Hodí se pro cykly, validaci vstupů nebo zjištění pozice posledního znaku.
-
-
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á.
-
-
Metoda
at(index)-
Modernější varianta.
-
Podporuje záporné indexy, takže
-1znamená „poslední znak“,-2předposlední atd. -
Pokud je index mimo rozsah, vrátí
undefined.
-
-
Přístup pomocí hranatých závorek
[]-
Umožňuje napsat
text[0]místotext.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íundefinedmimo 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
jmenos libovolným jménem.
Požadovaný výstup:
-
Do konzole se vypíše, kolik znaků má jméno.
-
Do konzole se vypíše první znak jména pomocí
charAt(). -
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í
.lengthpro 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
jmenobylo prázdný řetězec, výsledky pro první/poslední znak budou""neboundefined.