Java >> Java tutorial >  >> Tag >> String

Find anden forekomst af tegn i streng Java

Find anden forekomst af tegn i streng Java | I en given streng kan der være mange forekomster af et tegn. I dette indlæg finder vi anden forekomst af karakter i streng Java. For at løse dette problem skal vi først forstå to former for indexOf()-metoden.

For at gøre dette kan vi bruge mange metoder, der er tilgængelige i Java-biblioteket. Ligesom andre sprog giver Java også mange strengmanipulationsmetoder, som har gjort programmører nemme. Her bruger vi en sådan metode kaldet indexOf().

Metodesyntaks:- public int indexOf(int ch)

  • Parametre: Karakter, som vi ønsker at finde indekset for.
  • Returneringer: Indeks for den første forekomst af tegnet fra start. Det returnerer -1, hvis det givne tegn ikke eksisterer.

Ovenstående metode tager et tegn, der specificerer det tegn, der skal søges i, og returnerer indekset, hvor det findes. Lad os se et eksempel:-

String str = "Know Program";
System.out.println(str.indexOf('o'));

Output:-

2

Dette tager bare karakterparameteren og returnerer den første forekomst af tegnet 'o'.

Metodesyntaks:- public int indexOf(int ch, int fromIndex)

  • Parametre: ch – Karakter, som vi ønsker at finde indekset for. fromIndex – indekset at starte søgningen fra.
  • Returneringer: Indeks for den første forekomst af tegnet i tegnsekvensen repræsenteret af dette objekt, der er større end eller lig med fromIndex, eller -1, hvis tegnet ikke forekommer.

Eksempel på indexOf(int ch, int fromIndex) metode:-

String str = "Know Program";
System.out.println(str.indexOf('o', 4));

Output:-

7

Nedenstående kodestykker returnerer den første forekomst af tegnet 'a' fra indeks 4 i den givne streng "Kend program".

Find anden forekomst af tegn i streng Java ved hjælp af indexOf()

For nu at finde anden forekomst af tegn i streng Java kan vi bruge begge disse indexOf() metoder, så den henter den anden forekomst. Overhold nedenstående kode.

String str = "Know Program";
char ch = 'o';
System.out.println(str.indexOf(ch, str.indexOf(ch) + 1));

Output:

7

Bemærk, at den første forekomst af '0' er i 2. position. Derfor returnerer str.indexOf(ch) værdi 2, som overføres til den forrige metode som en parameter. Str.indexOf(ch, 3) kaldes, som returnerer den første forekomst af 'o' fra den 3. position, og derfor returnerer koden 7.

import java.util.Scanner;

public class Main {
   public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);

      System.out.print("Enter String: ");
      String str = scan.nextLine();
      System.out.print("Enter a character: ");
      char ch = scan.next().charAt(0);

      int index = str.indexOf(ch, str.indexOf(ch) + 1);

      System.out.println("Index of the second occurrence of " 
                         + " character \'" + ch + "\' is: "+ index);
      scan.close();
   }
}

Output:-

Indtast streng:Kend program
Indtast et tegn:r
Indeks for den anden forekomst af tegnet 'r' er:9

Test-case, når karakter kun eksisterer én gang:-

Indtast streng:Kend program
Indtast et tegn:n
Indeks for den anden forekomst af tegnet 'n' er:-1

Test-tilfælde, når et tegn ikke findes i den givne streng:-

Indtast streng:Kend program
Indtast et tegn:H
Indeks for den anden forekomst af tegnet 'H' er:-1


Java tag