StringStartsWithEndsWith

Dize işlevleri startsWith() ve endsWith() , endsWith() hangi karakterle veya alt dizeyle başladığını veya biteceğini kontrol etmenizi sağlar. Temelde özel substring durumlarıdır.

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

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

Kod

startsWith() ve endsWith() , belirli bir ileti üstbilgisini aramak veya bir Dizenin sonunda tek bir karakter aramak için kullanılabilir. Belirli bir konumdan başlayan bir alt dize aramak için bir ofset ile de kullanılabilirler. Örneğin:

stringOne = "HTTP/1.1 200 OK"; if (stringOne.startsWith("200 OK", 9)) { Serial.println("Got an OK from the server"); }

Bu işlevsel olarak şu ile aynıdır:

stringOne = "HTTP/1.1 200 OK"; if (stringOne.substring(9) == "200 OK") { Serial.println("Got an OK from the server"); }

Dikkat: Dizenin aralığının dışında bir konum arıyorsanız, öngörülemeyen sonuçlar alırsınız. Örneğin, yukarıdaki örnekte stringOne.startsWith ("200 OK", 16), String'in kendisini kontrol etmez, ancak belleğin hemen ötesinde ne varsa kontrol eder. En iyi sonuçları elde etmek için, startsWith ve endsWith için kullandığınız dizin değerlerinin 0 ile Dize length() arasında olduğundan emin olun.


/*
  String startWith() and endsWith()

  Examples of how to use startsWith() and endsWith() 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/StringStartsWithEndsWith
*/

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 startsWith() and endsWith():");
  Serial.println();
}

void loop() {
  // startsWith() checks to see if a String starts with a particular substring:
  String stringOne = "HTTP/1.1 200 OK";
  Serial.println(stringOne);
  if (stringOne.startsWith("HTTP/1.1")) {
    Serial.println("Server's using http version 1.1");
  }

  // you can also look for startsWith() at an offset position in the string:
  stringOne = "HTTP/1.1 200 OK";
  if (stringOne.startsWith("200 OK", 9)) {
    Serial.println("Got an OK from the server");
  }

  // endsWith() checks to see if a String ends with a particular character:
  String sensorReading = "sensor = ";
  sensorReading += analogRead(A0);
  Serial.print(sensorReading);
  if (sensorReading.endsWith("0")) {
    Serial.println(". This reading is divisible by ten");
  } else {
    Serial.println(". This reading is not divisible by ten");
  }

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

See Also