std::stringstring conversion and manipulation utilities.
Most string operations (.find(), .slice(), .trim(), etc.)
are built-in methods available on all strings. This module provides
type-conversion helpers and additional string utilities.
import std.string;
fn main() {
let s = string.from_int(42); // "42"
let n = string.to_int("42").expect("to_int succeeds"); // 42
let f = string.to_float("3.14").expect("to_float succeeds"); // 3.14
let nl = string.from_char(10); // "\n"
let stars = string.repeat("*", 3); // "***"
let padded = string.pad_left("7", 3, "0"); // "007"
}
from_intConvert an integer to its string representation.
import std.string;
fn main() {
let s = string.from_int(42); // "42"
}
from_floatConvert a float to its string representation.
from_boolConvert a bool to "true" or "false".
from_charConvert a character code to a single-character string.
import std.string;
fn main() {
let newline = string.from_char(10);
}
to_intUnlike C's atoi, this function does not stop at the first non-digit
character — any non-digit anywhere in the string (after an optional leading
sign) returns a structured error.
to_floatParse a string as a float, returning a structured error on failure.
is_emptyCheck if a string is empty.
import std.string;
fn main() {
println(string.is_empty("")); // true
println(string.is_empty("hi")); // false
}
repeatRepeat a string n times.
import std.string;
fn main() {
let stars = string.repeat("*", 5); // "*****"
}
pad_leftPad a string on the left to reach the given width.
If s is already at least width characters, returns s unchanged.
import std.string;
fn main() {
println(string.pad_left("42", 5, " ")); // " 42"
println(string.pad_left("42", 5, "0")); // "00042"
}
pad_rightPad a string on the right to reach the given width.
If s is already at least width characters, returns s unchanged.
import std.string;
fn main() {
println(string.pad_right("hi", 5, " ")); // "hi "
}
is_numericCheck if a string contains only ASCII digits (0-9).
Returns false for empty strings.
import std.string;
fn main() {
println(string.is_numeric("123")); // true
println(string.is_numeric("12a")); // false
println(string.is_numeric("")); // false
}
countCount the number of non-overlapping occurrences of needle in haystack.
import std.string;
fn main() {
println(string.count("abcabc", "abc")); // 2
println(string.count("hello", "x")); // 0
}
starts_withCheck if a string starts with the given prefix.
import std.string;
fn main() {
println(string.starts_with("hello", "he")); // true
println(string.starts_with("hello", "lo")); // false
}
ends_withCheck if a string ends with the given suffix.
import std.string;
fn main() {
println(string.ends_with("hello", "lo")); // true
println(string.ends_with("hello", "he")); // false
}
containsCheck if a string contains the given substring.
import std.string;
fn main() {
println(string.contains("hello world", "world")); // true
println(string.contains("hello", "xyz")); // false
}
is_asciiCheck if a string contains only ASCII characters (code points 0–127).
import std.string;
fn main() {
println(string.is_ascii("hello")); // true
println(string.is_ascii("héllo")); // false
}
trimTrim leading and trailing whitespace from a string.
replaceReplace all occurrences of old in s with new_val.
splitSplit a string by sep into a list of substrings.
An empty separator splits the string into its individual Unicode characters (one element per codepoint). Empty input with an empty separator returns an empty list. A trailing delimiter produces a trailing empty element.
import std.string;
fn main() {
let parts = string.split("a,b,c", ","); // ["a", "b", "c"]
let trail = string.split("a,b,", ","); // ["a", "b", ""]
let chars = string.split("café", ""); // ["c", "a", "f", "é"]
let empty = string.split("", ""); // []
}
linesSplit a string into lines, stripping \r\n or \n endings.
Always emits a final element for the text after the last newline (which will be empty when the string ends with a newline), matching the FFI behaviour.
import std.string;
fn main() {
let lines = string.lines("foo\nbar"); // ["foo", "bar"]
let crlf = string.lines("a\r\nb"); // ["a", "b"]
let trail = string.lines("foo\n"); // ["foo", ""]
}
joinJoin a list of strings with sep between each element.
Returns an empty string for an empty list.
import std.string;
fn main() {
let s = string.join(["a", "b", "c"], ", "); // "a, b, c"
let e = string.join([], ","); // ""
}
ToStringTrait for types that can be converted to a string representation.
Provides a standard interface for string conversion across modules.
import std.string;
// Implement for custom types:
// impl ToString for MyType {
// fn to_str(m: MyType) -> string { ... }
// }
Convert this value to its string representation.