Arduino:
Ta bort citattecken från en sträng
Hur man gör:
För att ta bort citattecken från en sträng i Arduino kan du loopa över tecknen och bygga om strängen utan citattecknen. Till exempel:
String removeQuotes(String str) {
String result = ""; // Skapa en tom sträng för att hålla resultatet
for (int i = 0; i < str.length(); i++) {
if (str[i] != '"' && str[i] != '\'') { // Kontrollera varje tecken
result += str[i]; // Lägg till i resultatet om det inte är ett citattecken
}
}
return result;
}
void setup() {
Serial.begin(9600);
String testStr = "'Hello, World!'";
Serial.println(removeQuotes(testStr)); // Ska skriva ut: Hello, World!
}
void loop() {
// Inget att göra här
}
Exempelutskrift på seriebildskärmen skulle vara:
Hello, World!
Fördjupning
Konceptet att ta bort tecken från en sträng är inte unikt för Arduino; det är vanligt i många programmeringsmiljöer. Historiskt sett har strängmanipuleringsfunktioner varit en kärndel av programmeringsspråk för att tillåta utvecklare att rengöra och analysera data effektivt.
Utöver att manuellt loopa och bygga en ny sträng som visat ovan, finns det alternativa metoder. Till exempel skulle man kunna använda replace()
-metoden för att ersätta citattecken med en tom sträng, även om det finns avvägningar när det gäller läsbarhet och hantering av escape-tecken.
String removeQuotes(String str) {
str.replace("\"", ""); // Ersätter alla dubbla citattecken
str.replace("\'", ""); // Ersätter alla enkla citattecken
return str;
}
Att förstå avvägningarna är avgörande. Loopmetoden kan vara långsammare för långa strängar men är uttrycklig och enkel att anpassa (som om du behövde ta bort endast ledande och avslutande citattecken). Replace()
-metoden är mer koncis och generellt snabbare, men det blir knepigare om det finns ett behov av att hantera escape-citattecken inuti strängen.
Se också
- Arduinos strängreferens: https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/
- W3Schools guide till C++ strängmanipulation (relaterad till Arduinos språk): https://www.w3schools.com/cpp/cpp_strings.asp
- Stack Overflow-diskussioner om strängmanipulation i C++ (Arduinos grundspråk): https://stackoverflow.com/questions/tagged/string+cpp