Video: Hur fungerar vitaminer? (Biologi) - Studi.se 2024
Utan att förvandla i för mycket detalj, så här är hurWithinHorizon (".", 0). charAt (0) teknik fungerar: Java's findWithinHorizon-metoden söker efter saker i inmatningen. De saker som metoden finner beror på de saker du sätter i parentes. Exempelvis söker ett samtal för att hittaWithinHorizon (" d d d", 0) en grupp bestående av tre siffror. Med följande rad kod
System. ut. println (keyboard. findWithinHorizon (" d d d", 0));
Du kan skriva
Testning 123 Testtestning
och datorn svarar genom att visa
123
I samtalsmenyn FindWithinHorizon (" d d d", 0) för en enda siffra. Detta d-företag är en av många förkortningar i specialkoden heter reguljära uttryck .
Nu är det något konstigt. I världen av reguljära uttryck står en punkt för alla karaktärer alls. (Det betyder att en punkt står för "någon karaktär, inte nödvändigtvis en punkt".) Så hittaWithinHorizon (".", 0) berättar datorn att hitta nästa tecken av vilken typ som användaren skriver på tangentbordet. När du försöker skriva in en enda karaktär är findWithinHorizon (".", 0) mäktig användbar.
I callen findWithinHorizon (" d d d", 0) berättar 0 att hittaWithinHorizon för att fortsätta söka tills slutet av inmatningen. Detta värde 0 är ett speciellt fall eftersom allt annat än 0 begränsar sökningen till ett visst antal tecken. (Därför innehåller metoden namnet ordet horisonten . horisonten ligger så långt som metoden ser.) Här är några exempel:
-
Med samma inmatning Testning 123 Testing Testa, call findWithinHorizon (" d d d", 9) returnerar null. Den returnerar null eftersom de första nio tecknen i inmatningen (tecknen Testing 1 - seven letters, blank space och en siffra) inte innehåller tre på varandra följande siffror. Dessa nio tecken matchar inte mönstret d d d.
-
Med samma ingång returneras också call findWithinHorizon (" d d d", 10) null. Den returnerar null eftersom de första tio tecknen i inmatningen (tecknen Testing 12) inte innehåller tre på varandra följande siffror.
-
Med samma inmatning returnerar call findWithinHorizon (" d d d", 11) 123. Den returnerar 123 eftersom de första 11 tecknen i inmatningen (tecknen Testing 123) innehåller dessa 3 på varandra följande siffror.
-
Med inmatningen A57B442123 Testning returnerar call findWithinHorizon (" d d d", 12) 442. Den returnerar 442 eftersom bland de första 12 tecknen i inmatningen (tecknen A57B442123 Test), den första sekvensen som består av 3 på varandra följande siffror är sekvensen 442.
Men vänta! För att fånga en enda karaktär från tangentbordet, kallar du findWithinHorizon (".", 0). charAt (0). Vad är karaktärens roll (0) för att läsa en enda karaktär? Alla FindWithinHorizon-samtal beter sig som om det finns en massa karaktärer, inte bara en enda karaktär. Även när du kallar findWithinHorizon (".", 0), och datorn hämtar bara ett brev från tangentbordet, behandlar Java-programmet den bokstaven som en av möjligen många inmatnings tecken.
Samtalet till charAt (0) tar hand om multicharacterproblemet. Detta charAt (0) samtal berättar för Java att välja den ursprungliga karaktären från någon av de tecken som hittarWithinHorizon hämtar.