Úloha 5 – Metody trim(), substring(), slice(), concat() a split() v praxi

Stránky: Moodle ZČU
Kurz: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Kniha: Úloha 5 – Metody trim(), substring(), slice(), concat() a split() v praxi
Vytiskl(a): Nepřihlášený host
Datum: neděle, 18. října 2026, 07.34

Úvod do úlohy

Řetězce (stringy) jsou jedním z nejpoužívanějších datových typů v JavaScriptu. Uchovávají jména, hesla, zprávy, cesty k souborům… Abychom s nimi mohli efektivně pracovat, nabízí JavaScript velké množství metod. Mezi ty základní patří substring(), slice(), trim(), concat() a split(). Díky nim umíme vybrat část textu, odstranit mezery, spojovat texty dohromady nebo rozdělit větu na jednotlivá slova.


Teorie a principy + příklady

1) substring(start, end)

  • Vrátí část řetězce od pozice start do pozice end (bez ní).

  • Indexování začíná od 0.

  • Pokud vynecháme end, vezme se až do konce řetězce.

⚠️ Pozor: substring neumí pracovat se zápornými indexy (ignoruje je a bere 0).


2) slice(start, end)

  • Podobné jako substring, ale umí i záporné indexy.

  • Záporný index počítá od konce řetězce.


3) trim()

  • Odstraní mezery (a jiné bílé znaky jako tabulátor nebo nový řádek) na začátku a konci řetězce.

  • Velmi užitečné při práci s uživatelským vstupem.


4) concat()

  • Spojí (zřetězí) dva nebo více řetězců dohromady.

  • Prakticky totéž jako použití +.


5) split(separator)

  • Rozdělí řetězec na pole podle oddělovače (separator).

  • Pokud je oddělovač prázdný řetězec "", rozdělí se po znacích.


Typické chyby

  • Záměna substring a slice – oba vypadají podobně, ale slice podporuje záporné indexy, substring ne.

  • Očekávání, že trim() odstraní i mezery uprostřed textu – odstraní pouze začátek a konec.

  • Zapomenutí na mezery při spojování textů – concat() a + nespojí automaticky mezery, musíme je přidat ručně (" ").

  • Použití split() bez uvědomění si oddělovače – pokud text neobsahuje oddělovač, vrátí se celé pole s jedním prvkem.


Shrnutí

  • substring(start, end) – výběr části textu (nepodporuje záporné indexy).

  • slice(start, end) – výběr části textu, umí i záporné indexy.

  • trim() – odstraní bílé znaky na začátku a konci řetězce.

  • concat() – spojí řetězce (obdoba +).

  • split(separator) – rozdělí text na pole podle oddělovače.

Úloha

Zadání (kontext úlohy):
Tvým úkolem je z dlouhého textu vybrat a upravit část, která bude sloužit jako krátká úvodní zpráva. Pomocí metod pro práci s řetězci z textu odstraníš přebytečné mezery, vybereš jen určitou část textu a doplníš ji o podpis.


Cíl úlohy:
Procvičit základní metody práce s řetězci: trim(), substring(), slice(), concat() a split().


Vstupní podmínky:
Pracuj s proměnnou text, která obsahuje delší větu se zbytečnými mezerami.
Student pracuje pouze s nově vytvořeným souborem script.js.


Požadovaný výstup:

  1. Odstraň mezery na začátku a konci textu pomocí trim().

  2. Pomocí slice() nebo substring() vyber pouze prvních 15 znaků textu.

  3. Připoj za text tři tečky (...) pomocí concat() nebo +.

  4. Rozděl původní text do pole slov pomocí split(" ") a vypiš ho do konzole.

  5. Na konci vypiš finální zprávu do konzole ve formátu:
      Pole slov: [pole tvořené ze slov]
      Krátká zpráva: [tvůj výsledek] 
      Autor: [tvoje jméno]


Doplňující pokyny:
  • Používej pouze let nebo const (nikdy var).

  • V podmínkách nebo operacích buď přesný – metoda substring() neumožňuje záporné indexy.

  • Nezapomeň, že trim() neodstraní mezery uprostřed textu.

  • Vyzkoušej obě varianty – substring() i slice() – a sleduj rozdíl při záporných hodnotách.

Řešení úlohy

Co je zde splněno

  • Použita metoda trim() pro odstranění přebytečných mezer.

  • Pomocí substring() vybrána první část textu (15 znaků).

  • Text zakončen třemi tečkami metodou concat().

  • Rozdělení textu na slova pomocí split(" ").

  • Výstup do konzole v požadovaném formátu.

Poznámky

  • Metoda substring() neakceptuje záporné indexy – pokud bys zadal záporné číslo, bere ho jako 0.

  • trim() neodstraní mezery uprostřed textu, pouze na okrajích.