JavaRush /Blog Java /Random-FR /Méthode IndexOf de la classe String : pourquoi elle est n...

Méthode IndexOf de la classe String : pourquoi elle est nécessaire et comment elle fonctionne

Publié dans le groupe Random-FR
Bonjour! Les programmeurs utilisent souvent les méthodes automatiquement, sans réfléchir à leur fonctionnement. Ce sont les techniques de base que vous devez connaître.

Qu’est-ce que la surcharge de méthode ?

Avant d'examiner la méthode mentionnée dans le titre, rappelons-nous (et quelqu'un le saura) ce qu'est la surcharge de méthode. La surcharge de méthodes Java permet de définir deux ou plusieurs méthodes portant le même nom dans la même classe. Cela n'est possible que s'ils ont des paramètres d'entrée différents. Dans ce cas, les méthodes sont appelées surchargées et le processus lui-même est appelé surcharge de méthodes. La méthode IndexOf de la classe String : pourquoi elle est nécessaire et comment elle fonctionne - 1La surcharge de méthodes est l'un des principes fondamentaux du polymorphisme en Java.

A quoi sert une méthode indexOfde classe ?String

Imaginez que vous avez une longue chaîne. Par exemple, une lettre, et vous devez trouver l'endroit où a lieu la première adresse au destinataire par un nom que vous connaissez déjà. Comment allez-vous faire cela ? Utilisez la méthode indexOf javade classe String. Cette méthode est un exemple typique de surcharge de méthode, dont nous avons discuté ci-dessus.

Options de méthodeindexOf

La méthode java string indexOfcomporte quatre variantes différentes :

N°1.indexOf(int ch)

La méthode int indexOf(int ch)renvoie l'index dans la chaîne donnée de la première occurrence du caractère spécifié. En d’autres termes, nous obtiendrons le numéro de la première occurrence d’un caractère donné, en comptant de gauche à droite. Exemple:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Sortie de la console :

2
Si le caractère que nous recherchons ne se trouve pas dans cette ligne, nous obtiendrons -1.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Sortie de la console :

-1
PS Pour ne rien confondre, il ne faut pas oublier que les caractères d'une ligne se comptent non pas à partir de « 1,2,3… », mais à partir de « 0,1,2… ».

N°2.indexOf(int ch, int fromIndex)

La méthode int indexOf(int ch, int fromIndex)renvoie l'index dans cette chaîne de la première occurrence du caractère spécifié, en démarrant une recherche à l'index spécifié. Cette méthode est une version plus modernisée de la précédente. La différence est que nous indiquons le numéro de l'élément à partir duquel la recherche va effectivement commencer. Exemple:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Sortie de la console :

9
Si l'index à partir duquel la recherche sera effectuée dépasse la longueur de la chaîne, alors la réponse sera -1. Méthode IndexOf de la classe String : pourquoi elle est nécessaire et comment elle fonctionne - 2Comme vous l'avez peut-être remarqué, dans la signature de ces deux méthodes (ce que les méthodes prennent comme arguments), le type du symbole transmis est spécifié comme int, et non comme char. Cependant, nous avons transmis char. En effet, les chaînes sont stockées sous forme de tableau d'octets, où les cellules correspondent à un caractère spécifique de type char. La correspondance entre les octets chars'effectue selon la table ASCII. ASCII (code standard américain pour l'échange d'informations) est un tableau qui mappe les caractères imprimables et non imprimables courants aux codes numériques. Par conséquent, lorsqu'un certain caractère est transmis char, il est automatiquement converti en un nombre qui représente ce caractère dans la table ASCII. Sur cette base, nous pouvons transmettre directement le nombre ( int) à la méthode, qui correspond au caractère dont nous avons besoin. Par exemple, le caractère 'e' dans la table ASCII correspond au nombre 101, on peut donc répéter l'exemple précédent, mais sans le char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
La sortie de notre console n'a pas changé :

9
PS Dans certains cas, ces méthodes sont interchangeables, comme par exemple str.indexOf('e');elles seront similaires - str.indexOf('e', 0);.

N ° 3.indexOf(String str)

La méthode int indexOf(String str)renvoie l'index dans la ligne donnée de la première occurrence de la sous-chaîne spécifiée. Elle est fondamentalement différente de la première option dans la mesure où cette méthode recherche déjà une sous-chaîne entière ( String). Grâce à cela, nous pouvons rechercher quelque chose de plus spécifique. Exemple:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
Sortie de la console :

0
PS Toutes les variantes indexOfsont sensibles à la casse : les caractères majuscules (lettres majuscules) et les caractères minuscules (lettres minuscules) sont considérés comme différents. Sois prudent.

Numéro 4.indexOf(String str, int fromIndex)

La méthode indexOf(String str, int fromIndex)renvoie l'index dans cette ligne de la première occurrence de la sous-chaîne spécifiée, en commençant à l'index spécifié. Cette option est encore une fois une option précédente plus modernisée, mais avec une indication du lieu à partir duquel la recherche sera effectuée. Exemple:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
Sortie de la console :

26
PS Si vous spécifiez un index de départ négatif, la méthode indexOfle percevra comme 0. Dans ce cas, la méthode sera à nouveau similaire à la précédente (dans laquelle l'index de départ n'est pas spécifié). C'est tout pour aujourd'hui. Vous avez désormais plus de connaissances grâce à indexOfJava !
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION