Phương thức của chuỗi
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 69 trên 75.
Rust có nhiều phương thức chuỗi tích hợp sẵn, giúp bạn thực hiện nhiều thao tác khác nhau trên chuỗi. Các phương thức này hỗ trợ chỉnh sửa, tìm kiếm và biến đổi chuỗi. Dưới đây là một số phương thức chuỗi thường dùng:
len(): Trả về số byte trong chuỗi (bằng số ký tự đối với văn bản ASCII).chars().nth(index): Trả về ký tự tại chỉ số đã chỉ định (bắt đầu từ 0). Phương thức này trả về mộtOption<char>: một kiểu đặc biệt của Rust biểu thị một giá trị Some (nếu chỉ số tồn tại) hoặc None (nếu không tồn tại). Gọi.unwrap()trên giá trị này sẽ trích xuất trực tiếp ký tự.
contains(substring): Kiểm tra xem chuỗi có chứa chuỗi con được chỉ định hay không.starts_with(prefix): Kiểm tra xem chuỗi có bắt đầu bằng tiền tố được chỉ định hay không.ends_with(suffix): Kiểm tra xem chuỗi có kết thúc bằng hậu tố được chỉ định hay không.
to_uppercase(): Chuyển chuỗi thành chữ in hoa.to_lowercase(): Chuyển chuỗi thành chữ thường.trim(): Xóa khoảng trắng ở đầu và cuối chuỗi.
Ví dụ:
let message = "Hello, World!";
let length = message.len();
let firstChar = message.chars().nth(0).unwrap();
let contains_world = message.contains("World");
let starts_with_hello = message.starts_with("Hello");
let lower = message.to_lowercase();Thử thách
DễTạo một phương thức (method) có tên analyzeString, nhận một chuỗi (string) làm đầu vào và in ra phần phân tích sau bằng các phương thức của chuỗi:
- Độ dài của chuỗi
- Ký tự tại chỉ số 4
- Chuỗi có chứa chuỗi con "Rust" hay không
- Chuỗi có kết thúc bằng dấu chấm
.hay không - Chuỗi được chuyển thành chữ hoa
Đầu ra phải theo đúng định dạng sau:
Length: [The length]
Char at 4: [The Char at index 4]
Contains Rust: [true or false]
Ends with dot: [true or false]
Uppercase: [The string in uppercase]Lưu ý: Giả sử chuỗi đầu vào đủ dài để thực hiện tất cả các thao tác.
Tự làm thử
use std::io;
fn analyze_string(s: &str) {
// Viết code của bạn ở đây
}
fn main() {
let mut message = String::new();
io::stdin().read_line(&mut message).unwrap();
let message = message.trim();
analyze_string(message);
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online