Οι συναρτήσεις συμβολοσειράς startsWith() και endsWith() σας επιτρέπουν να ελέγξετε με ποιο χαρακτήρα ή με ποιο υποαλφαριθμητικό αρχίζει ή τελειώνει μια δεδομένη συμβολοσειρά. Στην ουσία είναι ειδικές περιπτώσεις της συνάρτησης substring.

Απαιτούμενος εξοπλισμός

– Πλακέτα του Arduino ή του Genuino.

Κύκλωμα

Δεν υπάρχει κάποιο συγκεκριμένο κύκλωμα για αυτό το παράδειγμα. Ωστόσο, η πλακέτα σας θα πρέπει να είναι συνδεδεμένη με τον υπολογιστή σας μέσω της USB θύρας. Επίσης, θα πρέπει να είναι ενεργοποιημένο και το παράθυρο της σειριακής οθόνης του λογισμικού του Arduino (IDE).

Arduino Board
Η εικόνα δημιουργήθηκε από το πρόγραμμα Fritzing.

Κώδικας

Το startsWith() και το endsWith() μπορούν να χρησιμοποιηθούν για την αναζήτηση μιας συγκεκριμένης επικεφαλίδας του μηνύματος. Αλλιώς, μπορούν να χρησιμοποιηθούν για την εύρεση ενός μοναδικού χαρακτήρα στο τέλος της συμβολοσειράς. Επίσης, με την βοήθεια της μετατόπισης μπορούν να ψάξουν για ένα υποαλφαριθμητικό, το οποίο ξεκινάει από μια συγκεκριμένη θέση. Για παράδειγμα:

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

Την ίδια ακριβώς λειτουργία εκτελεί και ο παρακάτω κώδικας:

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

Προσοχή: Εάν αναζητήσετε μια θέση η οποία βρίσκετε εκτός της εμβέλειας της συμβολοσειράς, τότε θα λάβετε απρόβλεπτα αποτελέσματα. Για παράδειγμα, στον παραπάνω κώδικα, η εντολή stringOne.startsWith(“200 OK”, 16) δεν θα κάνει σύγκριση με την ίδια την συμβολοσειρά, αλλά θα συγκρίνει μόνο ότι βρίσκεται στην μνήμη από αυτήν την θέση και πέρα. Για καλύτερα αποτελέσματα, βεβαιωθείτε ότι οι δείκτες των τιμών που χρησιμοποιείτε για τις συναρτήσεις startsWith() και endsWith() βρίσκονται μεταξύ του μηδενός και του length() της συμβολοσειράς.

/*
  String startWith() and endsWith()

 Examples of how to use startsWith() and endsWith() in a String

 created 27 July 2010
 modified 2 Apr 2012
 by Tom Igoe

 http://www.arduino.cc/en/Tutorial/StringStartsWithEndsWith

 This example code is in the public domain.
 */

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);
}

Επιστροφή στην σελίδα Παραπομπές Γλώσσας

Save