Video: Pattern Matching in Java using Built-in Method | Interview Coding Question 2024
Çok fazla ayrıntı vermeden, burada Bul'un nasıl Bulunduğu (".", 0). charAt (0) tekniği çalışır: Java'nın findWithinHorizon yöntemi girdide şeyler arar. Yöntemin bulduğu şeyler, parantez içine koyduğunuz şeylere bağlıdır. Örneğin, FindWithinHorizon (" d d d", 0) çağrısı üç basamaktan oluşan bir grup arar. Aşağıdaki kod satırı ile
Sistem. dışarı. println (klavye, findWithinHorizon (" d d d", 0));
Sınama 123 Sınama Testi
ve bilgisayar
123
görüntüleyerek yanıt verir. FindWithinHorizon (" d d d", 0) çağrısında her tek bir basamak için. Bu d iş, normal ifadeler olarak adlandırılan özel koddaki birçok kısaltmadan biridir.
İşte garip bir şey var. Normal ifadeler dünyasında, bir nokta herhangi bir karakteri ifade eder. (Yani, bir nokta, "mutlaka bir nokta değil" herhangi bir karakter anlamına gelir.) Dolayısıyla findWithinHorizon (".", 0), bilgisayarın kullanıcının klavyede yazdığı bir sonraki karakteri bulmasını söyler. Tek bir karakter girmeye çalıştığınızda, FindWithinHorizon (".", 0) kullanışlıdır.
findWithinHorizon (" d d d", 0) çağrısında, 0 findWithinHorizon'a girdi sonuna kadar arama yapmaya devam etmesini söyler. Bu 0 değeri, özel bir durumdur, çünkü 0'dan başka herhangi bir şey, aramayı belirli sayıda karaktere sınırlar. (Bu nedenle yöntem adı horizon kelimesini içerir. horizon metodun gördüğü kadarıyla) Birkaç örnek verilmiştir:
-
Aynı girdiyle Test 123 Testing Test, findWithinHorizon (" d d d", 9) çağrısı null döndürür. Girdiğin ilk dokuz karakteri (1 - yedi harf testi karakterleri, boşluk ve bir rakam) üç ardışık basamak içermediğinden null döndürür. Bu dokuz karakter, desen d d d ile eşleşmiyor.
-
Aynı girdiyle findWithinHorizon (" d d d", 10) çağrısı da null döndürür. Girişin ilk on karakteri (Testing 12 karakterleri) üç ardışık basamak içermediğinden boş döndürür.
-
Aynı girdi ile findWithinHorizon (" d d d", 11) çağrısı 123 değerini döndürür. 123 değerini döndürür, çünkü girdinin ilk 11 karakteri (Sınama 123 karakterleri) bu 3 ardışık rakamı içerir.
-
Giriş A57B442123 Testi ile, findWithinHorizon (" d d d", 12) çağrısı 442'yi döndürür. Girişin ilk 12 karakteri arasında (A57B442123 Test karakterleri arasında) oluşan ilk dizi, 3 ardışık basamaklı dizinin 442 dizisidir.
Fakat bekle! Klavyeden tek bir karakter kapmak için, findWithinHorizon (".", 0) 'i çağırırsınız. charAt (0) eklenmiştir. CharAt (0)'ın tek bir karakteri okumadaki rolü nedir? Herhangi bir bulguHorizon çağrısı, yalnızca bir karakter değil, bir grup karakter bulması gibi davranır. FindWithinHorizon (".", 0) ve bilgisayar klavyeden yalnızca bir harf getirdiğinde bile, Java programı bu harfi büyük olasılıkla çok sayıda girdi karakterinden biri olarak kabul eder.
charAt (0) çağrısı, çok karakterli sorunun üstesinden gelir. Bu charAt (0) çağrısı, Java'danHorizon getirirken bulan karakterlerden herhangi birinden ilk karakteri almasını söyler.