Kursusindhold
Java Udvidet
Java Udvidet
Indexof()-Metoden
Hvordan finder du indekset for et bestemt tegn i en String?
For at finde indekset for den første forekomst af et specifikt bogstav, tilbyder String
-klassen metoden indexOf()
. Denne metode er overloadet og har flere implementeringer. Lad os forstå, hvad hver af dem gør:
indexOf(String str)
indexOf(String str)
– i denne metode angiver parameteren, hvad vi søger efter. Det kan være et enkelt bogstav omsluttet af dobbelte anførselstegn (""
), en sekvens af bogstaver eller endda et ord. Denne metode returnerer indekset for den første forekomst af den angivne parameter i strengen. For eksempel, lad os finde indekset for bogstavet "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 ovenstående eksempel initialiserede vi variablen index
ved hjælp af metoden indexOf("l")
. Nu indeholder denne variabel indekset for den første forekomst af bogstavet "l"
i strengen "Hello"
.
indexOf(String str, int fromIndex)
indexOf(String str, int fromIndex)
– den første parameter er den samme som før og angiver, hvad vi søger efter.
Den anden parameter bestemmer startindekset, hvorfra vi begynder søgningen. For eksempel er der i ordet "Hello"
2 forekomster af bogstavet "l"
, og vi ønsker at finde indekset for den anden forekomst. Fra det første eksempel ved vi, at den første forekomst er ved indeks 2
, så lad os sætte fromIndex
-parameteren til 3 og finde indekset for det andet "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 ovenstående eksempel anvendte vi en mere praktisk tilgang. Vi brugte placeringen af den første forekomst af det angivne bogstav til at søge efter det andet bogstav startende fra indekset forøget med 1. På denne måde starter vi søgningen fra det næste indeks efter indekset for den første forekomst af det ønskede bogstav eller sæt af bogstaver.
Derudover kan parametrene String str
og int fromIndex
byttes om.
Det er også værd at bemærke, at hvis metoden indexOf()
ikke finder det angivne bogstav eller sæt af bogstaver, returnerer den værdien -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øgningen efter bogstavet "d"
i strengen "Hello"
gav ikke noget resultat, og metoden returnerede -1
. Dette kan være nyttigt til at opstille betingelser eller skabe et udgangspunkt for at afslutte en løkke.
Sådan findes det sidste indeks i strengen
String
har også en metode, der muliggør søgning fra slutningen af strengen. Denne metode kaldes lastIndexOf()
. Den fungerer efter samme princip. Lad os se et eksempel på at finde den sidste forekomst af bogstavet "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 fik vi resultatet 3
, som repræsenterer indekset for den sidste forekomst af bogstavet "l"
.
Tak for dine kommentarer!