Kurssisisältö
Java Laajennettu
Java Laajennettu
Indexof()-metodi
Miten löydät tietyn merkin indeksin merkkijonosta?
Etsiäksesi tietyn kirjaimen ensimmäisen esiintymän indeksin, String
-luokka tarjoaa indexOf()
-metodin. Tämä metodi on ylikuormitettu ja sillä on useita toteutuksia. Tarkastellaan, mitä kukin niistä tekee:
indexOf(String str)
indexOf(String str)
– tässä metodissa parametri määrittää, mitä etsitään. Se voi olla yksittäinen kirjain lainausmerkeissä (""
), kirjainjakso tai jopa sana. Tämä metodi palauttaa ensimmäisen esiintymän indeksin annetusta parametrista merkkijonossa. Esimerkiksi, etsitään kirjaimen "l"
indeksi merkkijonosta "Hello"
:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the index of the first appearance of the letter "l" int index = hello.indexOf("l"); // output the index of the first occurrence of "l" System.out.println("First appearance of the letter 'l' is on index " + index); } }
Yllä olevassa esimerkissä alustettiin muuttuja index
käyttämällä metodia indexOf("l")
. Nyt tämä muuttuja sisältää kirjaimen "l"
ensimmäisen esiintymän indeksin merkkijonossa "Hello"
.
indexOf(String str, int fromIndex)
indexOf(String str, int fromIndex)
– ensimmäinen parametri on sama kuin aiemmin, eli määrittää, mitä etsitään.
Toinen parametri määrittää aloitusindeksin, josta haku aloitetaan. Esimerkiksi sanassa "Hello"
on 2 kirjaimen "l"
esiintymää, ja haluamme löytää toisen esiintymän indeksin. Ensimmäisestä esimerkistä tiedämme, että ensimmäinen esiintymä on indeksissä 2
, joten asetetaan fromIndex
-parametriksi 3 ja etsitään toisen "l"
indeksin:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the index of the first appearance of the letter "l" int firstIndex = hello.indexOf("l"); // find the index of the second appearance of the letter "l", starting from the position after the first "l" int secondIndex = hello.indexOf("l", firstIndex + 1); // output the index of the second occurrence of "l" System.out.println("Second appearance of the letter 'l' is on index " + secondIndex); } }
Yllä olevassa esimerkissä käytettiin käytännöllisempää lähestymistapaa. Käytimme määritetyn kirjaimen ensimmäisen esiintymän sijaintia etsiäksemme toista kirjainta alkaen indeksistä lisättynä yhdellä. Näin aloitamme haun seuraavasta indeksistä halutun kirjaimen tai merkkijonon ensimmäisen esiintymän jälkeen.
Lisäksi parametrit String str
ja int fromIndex
voidaan vaihtaa keskenään.
On myös huomioitava, että jos indexOf()
-metodi ei löydä määritettyä kirjainta tai merkkijonoa, se palauttaa arvon -1
. Esimerkiksi:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the index of the letter "d" in the string int index = hello.indexOf("d"); // output the index, if the specified letter is not found, the value will be -1 System.out.println("Value of index, if it does not find a specified letter: " + index); } }
Kirjaimen "d"
etsiminen merkkijonosta "Hello"
ei tuottanut tulosta, ja metodi palautti arvon -1
. Tämä voi olla hyödyllistä ehtojen asettamisessa tai poistumiskohdan luomisessa silmukasta.
Kuinka löytää viimeinen indeksi merkkijonosta
String
-luokalla on myös metodi, jonka avulla voidaan etsiä merkkijonon lopusta alkaen. Tätä metodia kutsutaan lastIndexOf()
. Se toimii samalla periaatteella. Tarkastellaan esimerkkiä, jossa etsitään viimeinen kirjain "l"
merkkijonosta "Hello"
:
Main.java
package com.example; // do not modify the code below this comment public class Main { public static void main(String[] args) { String hello = "Hello"; // find the last index of the letter "l" int lastIndex = hello.lastIndexOf("l"); // output the last index where the letter "l" appears System.out.println("Last index of the letter 'l' : " + lastIndex); } }
Tässä saimme tulokseksi 3
, joka edustaa viimeisen "l"
-kirjaimen indeksiä.
Kiitos palautteestasi!