JavaRush /Blog Java /Random-PL /Metoda IndexOf klasy String: dlaczego jest potrzebna i ja...

Metoda IndexOf klasy String: dlaczego jest potrzebna i jak działa

Opublikowano w grupie Random-PL
Cześć! Programiści często korzystają z metod automatycznie, nie zastanawiając się nad tym, jak one działają. To podstawowe techniki, które musisz znać.

Co to jest przeciążanie metody?

Zanim przyjrzymy się tytułowej metodzie, przypomnijmy sobie (a ktoś będzie wiedział), czym jest przeciążanie metody. Przeciążanie metod Java umożliwia zdefiniowanie dwóch lub większej liczby metod o tej samej nazwie w tej samej klasie. Jest to możliwe tylko wtedy, gdy mają one różne parametry wejściowe. W takim przypadku metody nazywane są przeciążonymi, a sam proces nazywany jest przeciążaniem metod. Metoda IndexOf klasy String: dlaczego jest potrzebna i jak działa - 1Przeciążanie metod jest jedną z podstawowych zasad polimorfizmu w Javie.

Do czego służy metoda indexOfklasowa ?String

Wyobraź sobie, że masz długi sznurek. Na przykład list i musisz znaleźć miejsce, w którym następuje pierwszy adres do adresata, po nazwisku, które już znasz. Jak to zrobisz? Użyj metody indexOf javaklasowej String. Metoda ta jest typowym przykładem przeciążenia metody, o którym pisaliśmy powyżej.

Opcje metodyindexOf

Metoda java string indexOfma cztery różne odmiany:

nr 1.indexOf(int ch)

Metoda int indexOf(int ch)zwraca indeks w podanym ciągu pierwszego wystąpienia określonego znaku. Inaczej mówiąc, otrzymamy numer pierwszego wystąpienia danego znaku, licząc od lewej do prawej. Przykład:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Wyjście konsoli:

2
Jeśli szukanego znaku nie ma w tej linii, otrzymamy -1.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Wyjście konsoli:

-1
PS Aby niczego nie pomylić, nie należy zapominać, że znaki w wierszu liczone są nie od „1,2,3…”, ale od „0,1,2…”

Nr 2.indexOf(int ch, int fromIndex)

Metoda int indexOf(int ch, int fromIndex)zwraca indeks w tym ciągu pierwszego wystąpienia określonego znaku, rozpoczynając wyszukiwanie od określonego indeksu. Ta metoda jest bardziej unowocześnioną wersją poprzedniej. Różnica polega na tym, że podajemy numer elementu, od którego faktycznie rozpocznie się wyszukiwanie. Przykład:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Wyjście konsoli:

9
Jeśli indeks, z którego będzie prowadzone wyszukiwanie, przekracza długość ciągu, wówczas odpowiedzią będzie -1. Metoda IndexOf klasy String: dlaczego jest potrzebna i jak działa - 2Jak być może zauważyłeś, w sygnaturze tych dwóch metod (co metody przyjmują jako argumenty) typ przekazywanego symbolu jest określony jako int, a nie char. Jednak przekazaliśmy char. Dzieje się tak, ponieważ ciągi znaków są przechowywane jako tablica bajtów, w której komórki odpowiadają określonemu znakowi typu char. Zgodność między bajtami charodbywa się zgodnie z tabelą ASCII. ASCII (amerykański standardowy kod wymiany informacji) to tabela, która odwzorowuje popularne znaki drukowalne i niedrukowalne na kody numeryczne. Dlatego po przekazaniu określonego znaku charjest on automatycznie konwertowany na liczbę reprezentującą ten znak w tabeli ASCII. Na tej podstawie możemy bezpośrednio przekazać intdo metody liczbę ( ), która odpowiada potrzebnemu nam znakowi. Na przykład znak „e” w tabeli ASCII odpowiada liczbie 101, więc możemy powtórzyć poprzedni przykład, ale bez char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
Dane wyjściowe naszej konsoli nie uległy zmianie:

9
PS W niektórych przypadkach te metody są wymienne, bo np. str.indexOf('e');będzie podobnie - str.indexOf('e', 0);.

Nr 3.indexOf(String str)

Metoda int indexOf(String str)zwraca indeks w danym wierszu pierwszego wystąpienia podanego podłańcucha. Różni się zasadniczo od pierwszej opcji tym, że ta metoda wyszukuje już cały podciąg ( String). Dzięki temu możemy poszukać czegoś bardziej konkretnego. Przykład:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
Wyjście konsoli:

0
PS We wszystkich odmianach rozróżniana indexOfjest wielkość liter: wielkie (duże litery) i małe litery (małe litery) są uznawane za różne. Bądź ostrożny.

Nr 4.indexOf(String str, int fromIndex)

Metoda indexOf(String str, int fromIndex)zwraca indeks w tym wierszu pierwszego wystąpienia określonego podciągu, zaczynając od określonego indeksu. Ta opcja jest ponownie bardziej unowocześnioną poprzednią opcją, ale ze wskazaniem miejsca, z którego będzie prowadzone wyszukiwanie. Przykład:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
Wyjście konsoli:

26
PS Jeżeli podasz ujemny indeks początkowy, metoda indexOfuzna go za 0. W tym przypadku metoda znów będzie podobna do poprzedniej (w której nie określono indeksu początkowego). To wszystko na dzisiaj. Teraz masz większą wiedzę dzięki indexOfJavie!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION