Membuat Potongan String
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 55 dari 66.
Sekarang setelah kamu memahami perbedaan antara String dan &str, mari pelajari cara membuat string slice dari string yang sudah ada. Ada dua cara utama untuk membuat &str dari String.
Cara paling sederhana adalah menggunakan operator referensi & dengan String milikmu. Ini membuat slice yang merujuk ke seluruh string:
let my_string = String::from("Hello World");
let slice: &str = &my_string; // Ini membuat slice dari seluruh stringKamu juga bisa membuat slice dari bagian tertentu string menggunakan sintaks rentang. Formatnya adalah &string[start..end], dengan start sebagai indeks awal dan end satu posisi setelah karakter terakhir yang ingin kamu sertakan:
let my_string = String::from("Hello World");
let first_word = &my_string[0..5]; // Ini menghasilkan "Hello" untuk kita
let second_word = &my_string[6..11]; // Ini menghasilkan "World" untuk kitaIndeks yang digunakan dalam sintaks range bertipe usize, yaitu tipe bilangan bulat tanpa tanda milik Rust untuk merepresentasikan ukuran dan indeks. Tipe ini standar digunakan setiap kali kamu perlu mengindeks koleksi atau menentukan panjang. Saat mengurai nilai indeks dari input, kamu akan menggunakan .parse::<usize>() untuk mengonversinya ke tipe yang benar.
Tantangan
MudahKamu akan menerima dua input. Input pertama berupa kalimat lengkap, dan input kedua berupa dua angka yang dipisahkan oleh spasi, yang menunjukkan indeks awal dan akhir untuk membuat slice. Buat String dari input pertama, lalu buat string slice menggunakan rentang yang ditentukan oleh kedua indeks tersebut. Cetak string asli pada baris pertama dan slice yang diambil pada baris kedua.
Persyaratan:
- Baca input pertama (kalimat lengkap) dan hapus spasi di awal dan akhir
- Buat
Stringdari input ini - Baca input kedua (dua angka yang dipisahkan oleh spasi) dan hapus spasi di awal dan akhir
- Pisahkan input kedua berdasarkan spasi untuk mendapatkan indeks awal dan akhir
- Parse kedua indeks menjadi
usize - Buat string slice menggunakan sintaks rentang
&string[start..end] - Cetak string asli
- Cetak slice yang diambil
Input:
- Baris pertama: Sebuah kalimat (misalnya,
Hello World) - Baris kedua: Dua angka yang dipisahkan oleh spasi (misalnya,
0 5)
Output:
- Baris pertama: String asli
- Baris kedua: Slice yang diambil
Coba sendiri
use std::io;
fn main() {
// Baca input pertama (kalimat lengkap)
let mut sentence = String::new();
io::stdin().read_line(&mut sentence).expect("Failed to read line");
let sentence = sentence.trim();
// Baca input kedua (dua angka yang dipisahkan oleh spasi)
let mut indices = String::new();
io::stdin().read_line(&mut indices).expect("Failed to read line");
let indices = indices.trim();
// TODO: Tulis kodemu di bawah ini
// Uraikan indeksnya dan buat potongan string
// Cetak string asli dan potongannya
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode Akhir6Menangani Ketiadaan dengan 'Option'
Apa itu 'Option'?Menggunakan 'match' dengan 'Option'is_some() dan is_none()Membuka bungkus 'Option'Metode expectMemberikan Nilai Default: unwrap_orRangkuman: Menemukan Elemen9Potongan String dan Lainnya
String vs. &strMembuat Potongan StringPotongan sebagai Parameter FungsiPotongan LainnyaRangkuman: Temukan Kata PertamaLatihan sendiri: Compiler Rust online