Strings
Source: examples/strings.ion in the repo.
// String manipulation showcase
let greeting = "Hello, World!";
// Basic methodsio::println(f"Length: {greeting.len()}");io::println(f"Upper: {greeting.to_upper()}");io::println(f"Lower: {greeting.to_lower()}");
let has_world = greeting.contains("World");io::println(f"Contains World: {has_world}");
// Splitting and joininglet csv = "alice,bob,charlie,diana";let names = csv.split(",");io::println(f"Names: {names}");io::println(f"Joined: {names.join(" & ")}");
// String multiplicationlet border = "=" * 40;io::println(border);io::println(" Ion Language String Demo");io::println(border);
// Trimming and paddinglet messy = " hello ";io::println(f"Trimmed: [{messy.trim()}]");io::println(f"Trim start: [{messy.trim_start()}]");io::println(f"Trim end: [{messy.trim_end()}]");
let label = "ID";io::println(f"Pad start: [{label.pad_start(10, " ")}]");io::println(f"Pad end: [{label.pad_end(10, "-")}]");
// Replace and repeatlet text = "the quick brown fox";let replaced = text.replace("fox", "cat");io::println(f"Replaced: {replaced}");io::println(f"Repeat: {"ab".repeat(5)}");
// Starts/ends with and strip prefix/suffixlet path = "/home/user/file.txt";io::println(f"Starts with /home: {path.starts_with("/home")}");io::println(f"Ends with .txt: {path.ends_with(".txt")}");io::println(f"Strip prefix: {path.strip_prefix("/home")}");io::println(f"Strip suffix: {path.strip_suffix(".txt")}");
// F-string interpolation with dictslet items = [ #{name: "Widget", price: 9.99}, #{name: "Gadget", price: 24.50}, #{name: "Doohickey", price: 3.75},];
for item in items { let p = item.price; io::println(f" {item.name}: ${p}");}io::println(border);
// String searchmatch text.find("quick") { Some(i) => io::println(f"Found 'quick' at index {i}"), None => io::println("Not found"),}
// Parsing strings to numberslet input = "42";match input.to_int() { Ok(n) => io::println(f"Parsed: {n * 2}"), Err(e) => io::println(f"Parse error: {e}"),}
// Triple-quoted stringslet poem = """Roses are red,Violets are blue,Ion is neat,And so are you.""";io::println(poem);
// Chars and reverselet word = "racecar";let reversed = word.reverse();io::println(f"'{word}' reversed is '{reversed}'");if word == reversed { io::println("It's a palindrome!");}
// String slicing and indexinglet alpha = "abcdefg";io::println(f"First: {alpha[0]}, Last: {alpha[-1]}, Third: {alpha[2]}");io::println(f"Slice [1..4]: {alpha[1..4]}");
// Unicode supportio::println(f"Char length of 'Hello': {"Hello".char_len()}");io::println(f"Byte length of 'Hello': {"Hello".len()}");