StringIndexOf

String nesnesi indexOf () yöntemi, bir String'deki belirli bir karakter değerinin ilk örneğini arama olanağı sağlar. Belirli bir ofsetten sonra karakterin ilk örneğini de arayabilirsiniz. LastIndexOf () yöntemi, bir dizenin sonundan aynı şeyleri yapmanızı sağlar.

String stringOne = "<HTML><HEAD><BODY>"; int firstClosingBracket = stringOne.indexOf('>');

Bu durumda, firstClosingBracket eşittir, çünkü ilk > karakter Dize'de 5. konumdadır (ilk karakteri 0 olarak firstClosingBracket ). İkinci kapanış braketini almak istiyorsanız, ilkinin konumunu bildiğiniz gerçeğini kullanabilir ve ofset olarak firstClosingBracket + 1 ofset olarak arama yapabilirsiniz:

stringOne = "<HTML><HEAD><BODY>"; int secondClosingBracket = stringOne.indexOf('>', firstClosingBracket + 1 );

Sonuç, HEAD etiketi için kapanış braketinin konumu 11 olacaktır.

Dizenin sonundan aramak istiyorsanız, bunun yerine lastIndexOf() yöntemini kullanabilirsiniz. Bu işlev, belirli bir karakterin son tekrarlanma konumunu döndürür.

stringOne = "<HTML><HEAD><BODY>"; int lastOpeningBracket = stringOne.lastIndexOf('<');

Bu durumda, lastOpeningBracket , BODY etiketi için < konumu olan lastOpeningBracket eşittir. HEAD etiketi için açılış ayracı istiyorsanız, stringOne.lastIndexOf('<', lastOpeningBracket -1) veya 6'da olur.

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

Bu örnek için devre yoktur, ancak kartınızın bilgisayarınıza USB ile bağlanması ve Arduino Yazılımının (IDE) seri monitör penceresinin açık olması gerekir.

Kod


/*
  String indexOf() and lastIndexOf() functions

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

  created 27 Jul 2010
  modified 2 Apr 2012
  by Tom Igoe

  This example code is in the public domain.

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

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // send an intro:
  Serial.println("\n\nString indexOf() and lastIndexOf()  functions:");
  Serial.println();
}

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 = "";
  int firstClosingBracket = stringOne.indexOf('>');
  Serial.println("The index of > in the string " + stringOne + " is " + firstClosingBracket);

  stringOne = "";
  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 = "";
  int bodyTag = stringOne.indexOf("");
  Serial.println("The index of the body tag in the string " + stringOne + " is " + bodyTag);

  stringOne = "
  • item
  • item
  • item
"; int firstListItem = stringOne.indexOf("
  • "); int secondListItem = stringOne.indexOf("
  • ", firstListItem + 1); Serial.println("The index of the second list tag in the string " + stringOne + " is " + secondListItem); // 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("
  • "); Serial.println("The index of the last list tag in the string " + stringOne + " is " + lastListItem); // lastIndexOf() can also search for a string: stringOne = "

    Lorem ipsum dolor sit amet

    Ipsem

    Quod

    "; int lastParagraph = stringOne.lastIndexOf("
  • See Also