Kursinnehåll
Java Fördjupad
Java Fördjupad
Indexof()-Metoden
Hur hittar du indexet för ett angivet tecken i en String?
För att hitta indexet för den första förekomsten av en specifik bokstav tillhandahåller klassen String
metoden indexOf()
. Denna metod är överlagrad och har flera implementationer. Låt oss förstå vad var och en av dem gör:
indexOf(String str)
indexOf(String str)
– i denna metod anger parametern vad vi söker efter. Det kan vara en enskild bokstav inom dubbla citattecken (""
), en sekvens av bokstäver eller till och med ett ord. Denna metod returnerar indexet för den första förekomsten av den angivna parametern i strängen. Till exempel, låt oss hitta indexet för bokstaven "l"
i strängen "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 exemplet ovan initierade vi variabeln index
med hjälp av metoden indexOf("l")
. Nu innehåller denna variabel indexet för den första förekomsten av bokstaven "l"
i strängen "Hello"
.
indexOf(String str, int fromIndex)
indexOf(String str, int fromIndex)
– den första parametern är densamma som tidigare och anger vad vi söker efter.
Den andra parametern bestämmer startindexet från vilket vi börjar sökningen. Till exempel, i ordet "Hello"
finns det 2 förekomster av bokstaven "l"
, och vi vill hitta indexet för den andra förekomsten. Från det första exemplet vet vi att den första förekomsten är på index 2
, så låt oss sätta parametern fromIndex
till 3 och hitta indexet för det andra "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 exemplet ovan använde vi en mer praktisk metod. Vi använde positionen för den första förekomsten av den angivna bokstaven för att söka efter den andra bokstaven med start från index ökat med 1. På detta sätt påbörjas sökningen från nästa index efter indexet för den första förekomsten av den önskade bokstaven eller teckenkombinationen.
Dessutom kan parametrarna String str
och int fromIndex
bytas ut mot varandra.
Det är också värt att notera att om metoden indexOf()
inte hittar den angivna bokstaven eller teckenkombinationen, returneras värdet -1
. Till exempel:
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ökningen efter bokstaven "d"
i strängen "Hello"
gav inget resultat, och metoden returnerade -1
. Detta kan vara användbart för att ange villkor eller skapa en utgångspunkt från en loop.
Hur man hittar det sista indexet i strängen
String
har också en metod som möjliggör sökning från slutet av strängen. Denna metod kallas lastIndexOf()
. Den fungerar enligt samma princip. Låt oss titta på ett exempel där vi hittar den sista förekomsten av bokstaven "l"
i strängen "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); } }
Här fick vi resultatet 3
, vilket representerar indexet för den sista förekomsten av bokstaven "l"
.
Tack för dina kommentarer!