FLASH rychle a snadno 17.

Objekt String – analytika řetězců v praxi, jak na kontrolu korektní e-mailové adresy, zkrátka další díl seriálu Flash rychle a snadno!

Objekt String

Tento objekt se, jak už bylo předesláno, používá pro analýzu a práci s řetězcovými a datovými typy. Může zjistit pozici určitého znaku, nebo znak na určité pozici, umožňuje štěpení řetězců na podřetězce a spojování řetězců. Také umí měnit malá a velká písmenka a různé části řetězce. Stejně jako o objektu Select si i tentokrát nejprve uvedeme přehled vlastností tohoto objektu:

Metoda nebo vlastnost Popis
indexOf(searchString, fromIndex) Prohledá řetězec a vrátí místo prvního výskytu podřetězce searchString, volitelná je počáteční pozice vyhledávání fromIndex.
LastIndexOf(searchString, fromIndex) Prohledá řetězec a vrátí místo posledního výskytu podřetězce searchString, opět začátek hledání určuje nepovinně fromIndex.
charAt(index) Vrátí znak ležící na určitém indexu.
substring(indexA, indexB) Vrátí řetězec mezi indexemA a indexemB.
substr(start, length) Vrátí řetězec o délce length od indexu start.
concat(string1, …, stringN) Zřetězí určené řetězce.
toLowerCase() Převede všechny znaky na malá písmenka.
toUpperCase Převede všechny znaky na velká písmenka.
length Vrací délku řetězce.

Práce s metodami objektu String Všechny zmiňované operace s řetězci lze dělat bez nutnosti vytváření instance objektu String, protože Flash vytváří a ruší automaticky přechodný objekt String v případě, že pracujeme s jeho metodami. Pozice znaků jsou určovány opět obdobně jako u objektu Selection, totiž první znak má index 0 a druhý 1. Pokud bychom chtěli hodnotu jakékoliv proměnné, výrazu či objektu převést na řetězec, slouží nám k tomu funkce String:

String(zaskrtavaciTlacitko)

Analýza řetězců objektem String

Objekt String si představíme na kontrole Znaku a znaků v řetězci. Ukážeme si totiž postup, jak určit, zda uživatel zadal požadované informace.

  1. Vytvoříme si na scéně textové pole.
  2. Navolíme si na něm Input text a Single Line.
  3. Pojmenujeme si ho Pole.
    Klepněte pro větší obrázek
  4. Vyrobíme další obdobné textové pole Znak, do něhož se bude zadávat hledaný znak.
  5. Nakonec dotvoříme scénu textovým polem Pozice, do něhož se bude vypisovat první nalezená pozice našeho znaku.
  6. Vytvoříme si symbol tlačítka na scéně.
    Klepněte pro větší obrázek
  7. Vložíme na něj akci on release.
  8. Vybereme dále Actions -> set variable.
  9. V poli Variable napíšeme jméno naší proměnné Pozice.
  10. Do pole Value napíšeme jméno naší proměnné Pole.
  11. Dále v poli Value zvolíme Objects -> String -> indexOf.
  12. Nyní můžeme pracovat s parametry searchString, to je námi hledaný znak Znak, a fromIndex – volitelná startovní pozice pro naše hledání.
  13. Nahradím tedy proměnnou Znak, jenž chceme hledat, parametr searchString (pokud bychom psali přímo znak, musí být v uvozovkách! aby byl rozlišen od proměnných).
  14. Smažeme parametr fromIndex.
  15. Zaškrtneme políčko Expression vedle pole Value – abychom nevypisovali pouze text.

Klepněte pro větší obrázek

Jak se již stalo dobrým zvykem, příklad si TADY můžete stáhnout a níže prohlédnout a otestovat:).

Další informace

Důležité je vědět, že použitím indexOf získáme pouze první pozici daného znaku. Pokud chceme zjistit všechny výskytu znaku, docílíme toho opakovaným používání metody indexOf, kdy jako volitelný parametr začátku hledání zadáme předcházející nalezenou pozici + 1. Potom by použití vypadalo asi takto:

Tecka1 = vstup.indexOf („.“)
Tecka2 = vstup.indexOf („.“, Tecka1+1)

Pro určení poslední pozice znaku v řetězci slouží metody lastIndexOF. Díky tomu můžeme tedy v rámci cyklu while procházet a zjišťovat počet výskytů znaku v řetězci do té doby, než dojdeme k hodnotě totožné s lastIndexOF:

Klepněte pro větší obrázek

Příklad je ke stáhnutí ZDE.

Kontrola emailové adresy

Takováto kontrola opět vychází z již předvedených vlastností – zjistíme totiž, zde v řetězec obsahuje zavináč, tečku a zda vůbec není nulový. Pro první dvě podmínky využije stav, kdy hodnota indexOf je –1 při nenalezení znaku. Pro další podmínku nám postačí zjistit aktuální délku vepsaného řetězce. Podívejme se tedy rovnou na samotný skript:

Klepněte pro větší obrázek

Při konstrukci samotné scény jsme použili tedy jedno textové pole Email pro elektronickou adresu, dále jedno tlačítko, na němž jsou výše uvedené akce a která vyvolává kontrolu a potom také místo pro popisek o vykonané operaci. Scéna tedy vypadá takto:

Klepněte pro větší obrázek

I tento příklad si můžete STÁHNOUT.

Logické operátory

Možná by se někdo mohl divit, co znamenalo v předchozí konstrukci skriptu toto: || - co tento dvojznak ve skriptů dělá? Proto si připomeneme základní logické operátory, se kterými jsme se dnes mohli setkat:

and - && - a současně

or - | - nebo

not - ! - negace

Klepněte pro větší obrázek

Ve výše uvedeném příkladu tedy musí platit, že a je větší jak b a zároveň b je větší jak c, nebo že c je větší jak nula a zároveň není rovno a. Takže první podmínce by odpovídalo například : a=3, b=2, c=1 a druhé a=3, b=2, c=2.

Za týden

V příštím pokračování povídání objektu String se zaměříme na přeskupování řetězců.

Diskuze (1) Další článek: U AMD se snižovaly ceny

Témata článku: Software, Programování, Flash, Scala, Znak, Tolo, Malý objekt, Pole, První parametr, Pozice, Textový řetězec, Quality, Movie, Loop, Určitý objekt, Textové pole


Určitě si přečtěte

Japonská MANA může být 80× výkonnější než sebelepší tranzistorový procesor

Japonská MANA může být 80× výkonnější než sebelepší tranzistorový procesor

** Tranzistory současných počítačů vyzařují při přepínání teplo ** Na Tokijské univerzitě proto vyvíjejí adiabatické procesory ** Využívají supravodivost a jsou 80× úspornější

Jakub Čížek | 48

Jakub Čížek
TranzistoryProcesoryTechnologie
Microsoft pořád myslí i na odpůrce předplatného. Letos vydá Office 2021
Lukáš Václavík
Microsoft OfficeMicrosoft
Finanční správa tento měsíc spustí Moje Daně. Přiznání má být hračka
Lukáš Václavík
eIdentitaČeskoeGovernment
Fedora 33 prostě funguje. Linux si zaslouží dobýt laptop, je to ale asi opět marné

Fedora 33 prostě funguje. Linux si zaslouží dobýt laptop, je to ale asi opět marné

** Desktopový Linux funguje a vypadá stále lépe ** Fedora 33 není výjimkou ** Ve stínu Windows a macOS tu vyrostly skvělé alternativy

Jakub Čížek | 167

Jakub Čížek
FedoraOperační systémyLinux
Čím nahradit WhatsApp: Vyberte si z 10 alternativních komunikátorů

Čím nahradit WhatsApp: Vyberte si z 10 alternativních komunikátorů

** Z WhatsAppu kvůli novým podmínkám utíkají tisíce uživatelů ** Čím nahradit populární aplikaci pro zasílání zpráv? ** Vybrali jsme pro vás 10 alternativních komunikátorů

Karel Kilián | 112

Karel Kilián
KomunikaceWhatsAppInstant Messaging