Merkkijonosta lainausmerkkien poistaminen

Arduino:
Merkkijonosta lainausmerkkien poistaminen

Miten:

Voit poistaa lainausmerkit merkkijonosta Arduinolla käymällä merkkijonon merkit läpi ja rakentamalla merkkijonon uudelleen ilman lainausmerkkejä. Esimerkiksi:

String removeQuotes(String str) {
  String tulos = ""; // Luo tyhjä merkkijono tuloksen säilyttämiseen
  for (int i = 0; i < str.length(); i++) {
    if (str[i] != '"' && str[i] != '\'') { // Tarkista jokainen merkki
      tulos += str[i]; // Lisää tulosmerkkijonoon, jos ei ole lainausmerkki
    }
  }
  return tulos;
}

void setup() {
  Serial.begin(9600);
  String testStr = "'Hei, maailma!'";
  Serial.println(removeQuotes(testStr)); // Pitäisi tulostaa: Hei, maailma!
}

void loop() {
  // Ei mitään tehtävää täällä
}

Esimerkkitulostus sarjamonitorissa olisi:

Hei, maailma!

Syväsukellus

Merkkijonoista merkkien poistaminen ei ole ainutlaatuista Arduinolle; se on yleistä monissa ohjelmointiympäristöissä. Historiallisesti merkkijonojen käsittelyfunktiot ovat olleet olennainen osa ohjelmointikieliä, jotta kehittäjät voivat puhdistaa ja jäsentää dataa tehokkaasti.

Manuaalisen silmukoinnin ja uuden merkkijonon rakentamisen lisäksi, kuten yllä näytettiin, on olemassa vaihtoehtoisia menetelmiä. Esimerkiksi voit käyttää replace()-metodia korvaamaan lainausmerkit tyhjällä merkkijonolla, vaikka siinä onkin kompromisseja luettavuuden ja pakomerkkien hallinnan suhteen.

String removeQuotes(String str) {
  str.replace("\"", ""); // Korvaa kaikki kaksoislainausmerkit
  str.replace("\'", ""); // Korvaa kaikki yksittäiset lainausmerkit
  return str;
}

Vaihtoehtojen haittapuolien ymmärtäminen on tärkeää. Silmukkamenetelmä voi olla hitaampi pitkille merkkijonoille, mutta se on eksplisiittinen ja helppo mukauttaa (kuten jos tarvitsisit poistaa vain alku- ja loppulainausmerkit). replace()-metodi on tiiviimpi ja yleensä nopeampi, mutta siitä tulee hankalampaa, jos merkkijonossa on käsiteltävä paetut lainausmerkit.

Katso myös