Kursinnhold
Java Utvidet
Java Utvidet
Indexof()-Metoden
Hvordan finne indeksen til et spesifisert tegn i en String?
For å finne indeksen til første forekomst av et bestemt tegn, tilbyr String
-klassen metoden indexOf()
. Denne metoden er overloadet og har flere implementasjoner. La oss se nærmere på hva hver av dem gjør:
indexOf(String str)
indexOf(String str)
– i denne metoden angir parameteren hva vi søker etter. Det kan være en enkelt bokstav omsluttet av doble anførselstegn (""
), en sekvens av bokstaver eller til og med et ord. Denne metoden returnerer indeksen til første forekomst av den angitte parameteren i strengen. For eksempel, la oss finne indeksen til bokstaven "l"
i strengen "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); } }
I eksempelet ovenfor initialiserte vi variabelen index
ved å bruke metoden indexOf("l")
. Nå inneholder denne variabelen indeksen til første forekomst av bokstaven "l"
i strengen "Hello"
.
indexOf(String str, int fromIndex)
indexOf(String str, int fromIndex)
– den første parameteren er den samme som tidligere, og angir hva vi søker etter.
Den andre parameteren bestemmer startindeksen hvor vi begynner søket. For eksempel, i ordet "Hello"
finnes det 2 forekomster av bokstaven "l"
, og vi ønsker å finne indeksen til den andre forekomsten. Fra det første eksempelet vet vi at første forekomst er på indeks 2
, så vi setter fromIndex
-parameteren til 3 og finner indeksen til den andre "l"
:
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); } }
I eksempelet ovenfor tok vi en mer praktisk tilnærming. Vi brukte plasseringen til den første forekomsten av den angitte bokstaven for å søke etter den andre bokstaven, med start fra indeksen økt med 1. På denne måten starter vi søket fra neste indeks etter indeksen til den første forekomsten av ønsket bokstav eller sett med bokstaver.
I tillegg kan parameterne String str
og int fromIndex
byttes om.
Det er også verdt å merke seg at hvis indexOf()
-metoden ikke finner den angitte bokstaven eller settet med bokstaver, vil den returnere verdien -1
. For eksempel:
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); } }
Søket etter bokstaven "d"
i strengen "Hello"
ga ingen resultater, og metoden returnerte -1
. Dette kan være nyttig for å sette betingelser eller lage et utgangspunkt for å avslutte en løkke.
Hvordan finne siste indeks i strengen
String
har også en metode som lar deg søke fra slutten av strengen. Denne metoden heter lastIndexOf()
. Den fungerer etter samme prinsipp. La oss se på et eksempel der vi finner siste forekomst av bokstaven "l"
i strengen "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); } }
Her fikk vi resultatet 3
, som representerer indeksen til siste forekomst av bokstaven "l"
.
Takk for tilbakemeldingene dine!