Video: Vedeti cum functioneaza "Metoda accidentul"... (La Maruta / Editia 200) 2024
Fără a mai vătăma prea multe detalii, iată cum a găsit findWithinHorizon (".", 0). charAt (0) tehnica funcționează: metoda findWithinHorizon a lui Java caută lucrurile în intrare. Lucrurile găsite de metodă depind de lucrurile pe care le puneți în paranteze. De exemplu, un apel pentru a găsiWithinHorizon (" d d d", 0) caută un grup format din trei cifre. Cu următoarea linie de cod
Sistem. out. println (tastatură) findWithinHorizon (" d d d", 0));
Puteți introduce
->Testarea 123 Testarea testelor
și calculatorul răspunde afișând
123
În apelul findWithinHorizon (" d d pentru o singură cifră. Această afacere d este una din numeroasele abrevieri în cod special numite expresii regulate .
Acum e ceva ciudat. În lumea expresiilor regulate, un punct reprezintă orice caracter. (Adică un punct reprezintă "orice caracter, nu neapărat un punct"). Deci findWithinHorizon (".", 0) îi spune computerului să găsească următorul caracter de orice fel pe care utilizatorul îl introduce pe tastatură. Când încercați să introduceți un singur caracter, FindWithinHorizon (".", 0) este foarte util.
În apelul FindWithinHorizon (" d d d", 0), 0 spune căWithinHorizon continuă să caute până la sfârșitul intrării. Această valoare 0 este un caz special deoarece orice altceva decât 0 limitează căutarea la un anumit număr de caractere. (De aceea, numele metodei conține cuvântul orizont . orizontul este la fel de mult pe care îl vede metoda.) Iată câteva exemple:
-
Testarea, apelul FindWithinHorizon (" d d d", 9) revine null. Se întoarce nulă deoarece primele nouă caractere ale intrării (caracterele Testarea 1 - șapte litere, un spațiu gol și o cifră) nu conțin trei cifre consecutive. Aceste nouă caractere nu se potrivesc cu modelul d d d.
-
Cu aceeași intrare, apelul findWithinHorizon (" d d d", 10) returnează și null. Se întoarce nulă deoarece primii zece caractere ale intrării (caracterele Testarea 12) nu conțin trei cifre consecutive.
-
Cu aceeași intrare, apelul findWithinHorizon (" d d d", 11) returnează 123. Acesta returnează 123, deoarece primii 11 caractere ale intrării (caracterele Testarea 123) conțin aceste trei cifre consecutive.
-
Cu testul de intrare A57B442123, apelul findWithinHorizon (" d d d", 12) returnează 442. Se returnează 442 deoarece printre primele 12 caractere ale intrării (caracterele A57B442123 Test) de 3 cifre consecutive este secventa 442.
Dar așteptați! Pentru a apuca un singur caracter de la tastatură, sunați FindWithinHorizon (".", 0). charAt (0). Care este rolul lui charAt (0) în citirea unui singur caracter? Orice apel findWithinHorizon se comportă ca și cum ar găsi o grămadă de personaje, nu doar un singur caracter. Chiar și atunci când apelați FindWithinHorizon (".", 0) și computerul primește o singură literă de la tastatură, programul Java tratează litera respectivă ca una dintre posibilele caractere de intrare.
Apelul la charAt (0) are grija de problema multicharacter. Acest apel charAt (0) îi spune Java să aleagă caracterul inițial de la oricare dintre caracterele care se găsesc prin preluarea luiWithinHorizon.