void main() {
final var str = "Hello World";
var newStr = str.replace('l', 'w'); // substitute characters
IO.println (newStr);
newStr = str.replace ("World", "Universe");
IO.println (newStr);
// NB. String is immutable class. StringBuilder is mutable class!
newStr = str.replaceFirst("l", "w"); //
IO.println (newStr);
final var phoneNumber = "+1-(555)-123-4567";
newStr = phoneNumber.replace("+", "")
.replace("-", "")
.replace("(", "")
.replace(")", "");
IO.println (newStr);
// NB. A different string is created and returned each time
final String p1 = "[+()-]"; // either of '+', '-', '(', ')'
newStr = phoneNumber.replaceAll (p1, "");
IO.println (newStr);
final String p2 = "\\D"; // anything not a digit
newStr = phoneNumber.replaceAll (p2, "");
IO.println (newStr);
final String p3 = "([a-z])\\1"; // back reference
newStr = str.replaceAll (p3, "$1");
IO.println (newStr);
}