Video: Hvordan virker solceller? 2025
Uden at vægge i for meget detaljer, her er hvordan findWithinHorizon (".", 0). charAt (0) teknikværker: Java's findWithinHorizon-metoden leder efter ting i input. De ting, som metoden finder, afhænger af de ting, du sætter i parentes. For eksempel søger et opkald for at findeWithinHorizon (" d d d", 0) en gruppe bestående af tre cifre. Med følgende linje kode
System. ud. println (keyboard. findWithinHorizon (" d d d", 0));
Du kan skrive
Testing 123 Testing Testing
, og computeren reagerer ved at vise
123
I call findWithinHorizon (" d d d", 0) for et enkelt tal. Dette d-forretning er en af mange forkortelser i særlig kode kaldet regulære udtryk .
Nu er der noget mærkeligt. I verden med regulære udtryk står en prik for ethvert tegn overhovedet. (Det vil sige, en prik står for "enhver karakter, ikke nødvendigvis en prik.") Så findWithinHorizon (".", 0) fortæller computeren at finde den næste karakter af enhver art, som brugeren skriver på tastaturet. Når du forsøger at indtaste en enkelt karakter, er FindWithinHorizon (".", 0) megen nyttig.
I opkaldet findWithinHorizon (" d d d", 0) fortæller 0, at FindWithinHorizon fortsætter med at søge indtil slutningen af indgangen. Denne værdi 0 er et specielt tilfælde, fordi alt andet end 0 begrænser søgningen til et bestemt antal tegn. (Derfor indeholder metodenavnet ordet horisont . horisonten er så langt som metoden ser.) Her er et par eksempler:
-
Med samme input Testing 123 Testing Testning, call findWithinHorizon (" d d d", 9) returnerer null. Den returnerer null, fordi de første ni tegn i indgangen (tegnene Tester 1 - syv bogstaver, et tomt rum og et tal) ikke indeholder tre på hinanden følgende cifre. Disse ni tegn stemmer ikke overens med mønsteret d d d.
-
Med samme indtastning returnerer call findWithinHorizon (" d d d", 10) også null. Den returnerer null, fordi de første ti tegn i indgangen (tegnene Test 12) ikke indeholder tre på hinanden følgende cifre.
-
Med samme indtastning returnerer call findWithinHorizon (" d d d", 11) 123. Den returnerer 123, fordi de første 11 tegn i indgangen (tegnene Testing 123) indeholder disse 3 på hinanden følgende cifre.
-
Med indtastningen A57B442123 Testing returnerer call findWithinHorizon (" d d d", 12) 442. Den returnerer 442 fordi blandt de første 12 tegn i indgangen (tegnene A57B442123 Test), den første sekvens bestående af 3 på hinanden følgende cifre er sekvensen 442.
Men vent! For at hente en enkelt karakter fra tastaturet, kalder du findWithinHorizon (".", 0). charAt (0). Hvad er charAt (0) rolle i læsning af en enkelt karakter? Ethvert FindWithinHorizon-opkald opfører sig som om det er at finde en flok tegn, ikke bare et enkelt tegn. Selv når du kalder findWithinHorizon (".", 0), og computeren henter kun ét bogstav fra tastaturet, behandler Java-programmet det pågældende bogstav som en af muligvis mange indtastningsfigurer.
Opkaldet til charAt (0) tager sig af multicharacter problemet. Dette charAt (0) opkald fortæller Java at vælge den oprindelige tegn fra et hvilket som helst af de tegn, der finder WithinHorizon hentes.