String data type makes a very important part of any programming language. Rust handles strings a bit differently from other languages.
The String data type in Rust is of two types:
- String Literal (&str)
- String Object (String)
String Literal:
String Literal or &str are called ‘string slices’, which always point to a legitimate UTF-8 sequence. It is used when we know the value of a string at compile time. They are a set of characters and static by default.
Example 1: Declaring string literals.
Rust
fn main() {
let website:&str= "geeksforgeeks.org" ;
let language:&str = "RUST" ;
println!( "Website is {}" ,website);
println!( "Language is {}" ,language);
}
|
Output:
Website is geeksforgeeks.org
Language is RUST
String Object:
The String Object is provided by the Standard Library in Rust. It is not a part of the core language and String is heap-allocated, growable, and not null-terminated. They are commonly created by converting them from a string slice by using the to_string() method.
Example 2: Declaring String Object and converting String Literal to String Object
Rust
fn main() {
let str1 = String::from( "Rust Articles" );
println!( "{}" ,str1);
let str2 = "GeeksforGeeks" .to_string();
println!( "{}" ,str2);
}
|
Output:
Rust Articles
GeeksforGeeks
Example 3: Creating an empty string and then set its value.
Rust
fn main() {
let mut str1 = String::new();
str1.push_str( "GeeksForGeeks" );
println!( "{}" ,z);
}
|
Output:
GeeksForGeeks
Rust allows many methods to be used with Strings just as JAVA does. Also, it supports many methods such as indexing, concatenation, and slicing.