Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]
Classe String

indexOf()


Description

Localise un caractère ou un String dans un autre objet String. Par défaut, recherche depuis le début de l'objet String, mais peut également débuter la recherche à partir d'un emplacement donné, permettant la localisation de toutes les instances du caractère ou du String à chercher.

Syntaxe


string.indexOf(valeur)
string.indexOf(valeur, debut)

Paramètres

  • string: une variable de type String()
  • valeur : la valeur à chercher (type char ou String)
  • debut : l'emplacement du début de la recherche

Note : l'index du premier caractère est 0.

Valeur renvoyée

  • Renvoie l'emplacement où valeur a été trouvé dans l'objet string, ou -1 si n'a pas été trouvé.

Exemple


/*
  String indexOf() and lastIndexOf() functions

 Examples of how to evaluate, look for, and replace characters in a String

 created 27 July 2010
 by Tom Igoe

 http://arduino.cc/en/Tutorial/StringIndexOf

 This example code is in the public domain.
 */


void setup() {
  Serial.begin(9600);
  Serial.println("\n\nString indexOf() and lastIndexOf()  functions:");

}

void loop() {
 // indexOf() returns the position (i.e. index) of a particular character
  // in a string. For example, if you were parsing HTML tags, you could use it:
  String stringOne = "<HTML><HEAD><BODY>";
  int firstClosingBracket = stringOne.indexOf('>');
  Serial.println("The index of > in the string " + stringOne + " is " + firstClosingBracket);

  stringOne = "<HTML><HEAD><BODY>";
  int secondOpeningBracket = firstClosingBracket + 1;
  int secondClosingBracket = stringOne.indexOf('>', secondOpeningBracket );
  Serial.println("The index of  the second > in the string " + stringOne + " is " + secondClosingBracket);

  // you can also use indexOf() to search for Strings:
  stringOne = "<HTML><HEAD><BODY>";
  int bodyTag = stringOne.indexOf("<BODY>");
  Serial.println("The index of the body tag in the string " + stringOne + " is " + bodyTag);

  stringOne = "<UL><LI>item<LI>item<LI>item</UL>";
  int firstListItem = stringOne.indexOf("<LI>");
  int secondListItem = stringOne.indexOf("item", firstListItem + 1 );
  Serial.println("The index of the second list item in the string " + stringOne + " is " + secondClosingBracket);

  // lastIndexOf() gives you the last occurrence of a character or string:
  int lastOpeningBracket = stringOne.lastIndexOf('<');
  Serial.println("The index of the last < in the string " + stringOne + " is " + lastOpeningBracket);

  int lastListItem  = stringOne.lastIndexOf("<LI>");
  Serial.println("The index of the last list item in the string " + stringOne + " is " + lastListItem);


// lastIndexOf() can also search for a string:
   stringOne = "<p>Lorem ipsum dolor sit amet</p><p>Ipsem</p><p>Quod</p>";
  int lastParagraph = stringOne.lastIndexOf("<p");
  int secondLastGraf = stringOne.lastIndexOf("<p", lastParagraph - 1);
  Serial.println("The index of the second last paragraph tag " + stringOne + " is " + secondLastGraf);

// do nothing while true:
 while(true);
}

Voir également

Commentaires utilisateurs

  • La localisation exacte d'une sous-chaîne n'a pas forcément d'importance. Pour juste savoir si une sous-chaîne est présente, on peut utiliser cette instruction "à l'envers" dans une condition, à savoir que si le résultat est différent de -1, on sait que la chaîne existe, quelque soit sa localisation. Cela équivaut à une sorte fonction de recherche.

Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Cette page est la traduction de la page originale : http://arduino.cc/en/Reference/StringIndexOf