String replace Function
The String replace()
function allows you to replace all instances of a given character with another character. You can also use replace
to replace substrings of a String with a different substring.
Circuit
There is no circuit for this example, though your board must be connected to your computer via USB and the serial monitor window of the Arduino Software (IDE) should be open.
image developed using Fritzing. For more circuit examples, see the Fritzing project page
Code
Caution:
If you try to replace a substring that's more than the whole String itself, nothing will be replaced. For example:
String stringOne = "<html><head><body>";
String stringTwo = stringOne.replace("<html><head></head><body></body></html>", "Blah");
In this case, the code will compile, but stringOne
will remain unchanged, since the replacement substring is more than the String itself.
/*
String replace()
Examples of how to replace characters or substrings of 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/StringReplace
*/
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 replace:\n");
Serial.println();
}
void loop() {
String stringOne = "<html><head><body>";
Serial.println(stringOne);
// replace() changes all instances of one substring with another:
// first, make a copy of the original string:
String stringTwo = stringOne;
// then perform the replacements:
stringTwo.replace("<", "</");
// print the original:
Serial.println("Original string: " + stringOne);
// and print the modified string:
Serial.println("Modified string: " + stringTwo);
// you can also use replace() on single characters:
String normalString = "bookkeeper";
Serial.println("normal: " + normalString);
String leetString = normalString;
leetString.replace('o', '0');
leetString.replace('e', '3');
Serial.println("l33tspeak: " + leetString);
// do nothing while true:
while (true);
}
See Also
Last Revision 2018/03/27 by SM