Merkkien poistaminen hakemalla osumia kaavaan

Arduino:
Merkkien poistaminen hakemalla osumia kaavaan

How to: - Näin teet:

String data = "H3l5l7o, W0o2rl4d!";
String pattern = "0123456789";
for (int i = 0; i < pattern.length(); i++) {
  data.remove(data.indexOf(pattern.charAt(i)), 1);
}
Serial.begin(9600);
Serial.println(data);  // Tulostaa: Hello, World!

Huomaa, että remove() ei tee mitään, jos merkkiä ei löydy.

Deep Dive - Syväsukellus

Historiallisesti merkkijonon käsittely on kuulunut ohjelmoinnin peruspilareihin. Aikaisemmin tehtävään käytettiin kenties manuaalisia taulukko-operaatioita tai standardikirjastojen funktioita kuten strchr C-kielessä. Arduino-kielellä String-luokka tarjoaa korkean tason funktion remove(), joka tekee merkkien poistosta sujuvaa.

Vaihtoehtoisia tapoja poistaa merkit voi olla käyttää matalamman tason funktioita kuten strtok tai regex (säännölliset lausekkeet), mutta nää eivät ole suoraan saatavilla Arduinossa ilman erillisiä kirjastoja.

Huomaa, että String-objektien suuri käyttö voi johtaa fragmentaatioon ja muistiongelmiin Arduinon rajoitetussa ympäristössä. Edistyneemmissä projekteissa, ohjelmoijat saattavat käyttää char-taulukoita ja manuaalisia algoritmeja tehokkuuden säilyttämiseksi.

See Also - Katso Myös