Inne działy

Java przykładowe programy

 

Java metoda indexOf

 

MetodaIndexOf  jest używana do zlokalizowania znaku lub ciągu znaków w innym ciągu. Na przykład, można jej używać, aby zobaczyć, czy znak @ jest w adresie e-mail. Użyjmy tego w jakimś przykładowym kodzie.

Przykładowy kod:

 

package uazztablice;

    public class LokalizowanieZnaku {
        
        public static void main(String[] args){
            
            char ampersand = '@';
            String adres_email = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
            
            int wynik;
            wynik = adres_email.indexOf( ampersand );
            
            System.out.println(wynik);
        }
    }

 

 

Chcemy sprawdzić, czy znak @ znajduje się w adresie e-mail, więc najpierw deklarujemy zmienną typu char i przypisujemy jej wartość "@". (Zauważ, apostrofy wokół zmiennej char). Po skonfigurowaniu adresu e-mail, mamy zmienną wynikową. To jest zmienna typu int. Dlaczego, jest to liczba całkowita, ponieważ metodaindexOf  zwraca wartość. Metoda zwróci numer pozycji znaku @ w zmiennej adres_email. Oto linia kodu z metodą:

wynik = adres_email.indexOf( ampersand );

Ciąg, który starasz się szukać znajduje się w zmiennej. Po kropce wpisz indexOf. Między nawiasy okrągłe w metodzie indexOf masz kilka możliwości umieszczenia danych. Jedną z opcji jest wpisanie jednego znaku (lub nazwę zmiennej char). Mamy umieszczoną naszą zmienną ampersand między nawiasami okrągłymi metody indexOf. Java will then tell us the position of the @ character in the email address. It will store the value in the result variable. Java poda nam pozycję znaku @ w adresie e-mail. Będzie ona przechowywana w zmiennej wynik.

Po uruchomieniu kodu, wynikiem będzie 4. Można by pomyśleć, że znak @ jest piąty w adresie e-mail. Ale indexOf rozpocznia odliczanie od 0.

Jednakże, jeśli znaku nie ma w słowie, którego szukasz, indexOf zwróci wartość -1. Aby to przetestować, usuń znak @ z zmiennej email_address. Następnie uruchom swój kod ponownie. Zobaczysz jako wynik -1.

Możesz użyć wartości zwracanej -1 na swoją korzyść. Oto kod jeszcze raz, tylko z instrukcją IF, która analizuje wartość zmiennej wynik:

 

package uazztablice;

public class LokalizowanieZnaku {
    
    public static void main(String[] args){
        
        char ampersand = '@';
        String adres_email = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
        
        int wynik;
        wynik = adres_email.indexOf( ampersand );
        
        if (wynik == -1){
            System.out.println("Zły adres e-mail");
        } else {
            System.out.println("Adres e-mail jest prawidłowy");
        }
    }
}

Więc jeśli wynik metody indexOf jest -1 to możemy zrobić jedną rzecz, a mianowicie umożliwić użytkownikowi, aby kontynuować.

Możesz także użyć indexOf aby przetestować więcej niż jeden znak. Poniższy kod sprawdza adres e-mail, aby sprawdzić, czy kończy się wyrażeniem "com.":

 

package uazztablice;

public class LokalizowanieZnaku {
    
    public static void main(String[] args){
        
        String dotCom = ".com";
        String adres_email = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
        
        int wynik;
        wynik = adres_email.indexOf(dotCom);
        
        if(wynik == -1){
            System.out.println("Błędny adres e-mail");
        } else {
            System.out.println("Prawidłowy adres e-mail");
        }
    }
}

Kod jest niemal identyczny, z wyjątkiem, że mamy teraz zmienną typu String do przechowywania tekstu, który chcemy sprawdzić (. com), a nie zmienną typu char.

Ponownie wynik -1 zostanie zwrócony, jeśli tekst do wyszukania nie znajduje się w ciąg znaków, który znajduje się przed kropką metody indexOf. W przeciwnym razie, metoda indexOf zwraca położenie pierwszego znalezionego znaku. W powyższym kodzie, kropka jest na dziewiątym miejscu w adresie e-mail, kiedy zaczynasz liczenie od 0.

Możesz także określić pozycję początkową dla wyszukiwania. W naszym przykładzie adresu e-mail, możemy rozpocząć wyszukiwanie  wyrażenia ".com" po symbolu @. Oto kod, który najpierw lokalizuje pozycję symbolu @, a następnie używa ją jako pozycji wyjściowej do poszukiwania ".com"

 

package uazztablice;

public class LokalizowanieZnaku {
    
    public static void main(String[] args){
        
        char ampersand = '@';
        String dotCom = ".com";
        String adres_email = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
        
        int atPozycja = adres_email.indexOf(ampersand);
        int wynik = adres_email.indexOf(dotCom,atPozycja);
        
        if (wynik == -1){
            System.out.println("Błędny adres e-mail");
        } else {
            System.out.println("Prawidłowy adres e-mail " + wynik);
        }
    }
}

Nowa linia kodu jest taka:

wynik = adres_email.indexOf( dotCom, atPozycja );

Jedyną różnicą jest dodanie dodatkowej zmiennej w nawiasach metody indexOf. Nadal mamy ciąg, który chcemy wyszukać (poszukiwany tekst jest zawarty w zmiennej dotCom), ale teraz mamy pozycję, od której rozpoczniemy wyszukiwanie Jest to wartość zmiennej o nazwie atPos. Otrzymujemy wartość atPozycja przy użyciu metody indexOf, która lokalizuje położenie symbolu @ w adresie e-mail. Java będzie następnie rozpocząć wyszukiwanie od tej pozycji, a nie zaczynać od 0, które jest domyślne.

 

Ends With … Starts With

Dla programu powyżej, można również użyć wbudowanej metody endsWith:

Boolean koniec = adres_email.endsWith( dotcom );

Trzeba ustawić zmienną logiczną dla EndsWith, ponieważ metoda zwraca wartość jako prawda lub fałsz. Ciąg, który chcesz przetestować znajduje się między nawiasami okrągłymi metody endsWith. Jeśli tekst jest w ciągu wyszukiwania, zwracana jest wartość true, w przeciwnym razie będzie to false. Można dodać instrukcje, if ... else, aby sprawdzić wartość:

if (koniec == false ) {
System.out.println( "Błędny adres e-mail" );
}
else {
System.out.println( "Prawidłowy adres e-mail " );
}

Metoda startsWith jest stosowana w podobny sposób:

Boolean startVal = adres_email.startsWith( dotcom );

Ponownie, zwracana jest wartość logiczna prawda lub fałsz.

 

W następnej lekcji dowiesz się, jak korzystać z metody nazywanej substring.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.