String indexOf? Co wyznacza drugi argument?

0

Witam. Ostatnio przerabiam jeden z kursów Javy. Dostałem do zrobienia ćwiczenie, w którym trzeba policzyć ile w jedny stringu znajduje się wystąpień drugiego. Ma to być zrobione za pomocą pętli i tutaj mam problem bo udało mi się podpatrzeć na forum kursu jak ktoś inny to zrobił, ale nie do końca rozumiem dlaczego tak się dzieje i czym w ogóle jest tutaj drugi argument:

  for (int i = 0; i<string1.length(); i++)
            {
                //System.out.println("liczba i: "+i);
                
                
                if (i == string1.indexOf(string2,i))
                {
                   
                    licznik ++;
System.out.println(licznik);

No i właśnie nie bardzo rozumiem tej części - indexOf(string2, i). Tzn. pierwszy argument jest oczywisty położenie drugiego stringa w pierwszym. Drugi sprawia chyba, że pętla nie zatrzyma się na pierwszym, ale policzy wszystkie wystąpienia, tylko nie bardzo rozumiem jak. Co konkretnie robi drugi argument i czy może być ich więcej niż dwa?

0

IDE nie podpowiada?? Nie pisze w javie, ale w c# ten drugi argument to index od którego ta metoda ma zacząć przeszukiwanie. Używana tutaj prawdopodobnie żeby ciągle nie szukać od początku stringa.

0

Spoko, dzięki. Czy w takim razie jest jakiś sposób żeby wyznaczyć granicę, do której metoda ma szukać? Bo podanie trzeciego argumentu chyba nie jest możliwe.

0

A może by tak zerknąć w dokumentację?

public int indexOf(String str, int fromIndex)

Returns the index within this string of the first occurrence of the specified substring, starting at the specified index.

Czyli - jeżeli metoda znajdzie podciąg w tym Stringu to zwraca indeks od którego się zaczyna, w przeciwnym razie, jeżeli nie znajdzie, zwraca -1.

1 użytkowników online, w tym zalogowanych: 0, gości: 1