Konversi String
Termasuk bagian Dasar-Dasar dalam perjalanan Rust di Coddy. Pelajaran 71 dari 75.
Untuk mengonversi tipe numerik menjadi string, kamu bisa menggunakan method to_string(). Method ini tersedia untuk sebagian besar tipe data, termasuk bilangan bulat dan bilangan floating-point.
Contoh:
let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);Dalam contoh ini, kita mengonversi variabel i32 number menjadi String.
Untuk mengonversi string menjadi tipe numerik, kamu bisa menggunakan method parse(). Method ini mengembalikan hasil yang berisi angka yang telah diuraikan atau error jika konversi gagal.
Contohnya:
let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);Dalam contoh ini, kita mengonversi string number_str menjadi i32 menggunakan method parse(). Method unwrap() digunakan untuk mengambil nilai dari Result, dengan asumsi bahwa konversi berhasil.
Jika konversi gagal, program akan mengalami panic (kegagalan).
Kamu juga bisa menggunakan parse() dengan tipe numerik yang berbeda:
let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);Dalam kasus ini, kita mengonversi string float_str menjadi f64.
Tantangan
MudahBuat fungsi bernama convert_and_print yang menerima tiga argumen:
- Potongan string
s: &str. Ini adalah angka yang ditulis sebagai teks (misalnya,"123.67"). Nilai ini hanya digunakan saatto_stringbernilaifalse. - Float
n: f64: angka titik mengambang. Nilai ini hanya digunakan saatto_stringbernilaitrue. - Boolean
to_string: bool: menentukan operasi yang akan dilakukan.
Fungsi ini harus melakukan operasi berikut:
- Jika
to_stringbernilaitrue: ubahnmenjadi string menggunakan.to_string(), lalu hitung jumlah karakter digit di dalamnya (jangan hitung titik.atau tanda minus-). Cetak dengan format:Number: [string], Digits: [num of digits]
Misalnya, jikan = -321.198623, bentuk string-nya adalah"-321.198623", yang memiliki 9 karakter digit (tanpa menghitung-dan.).
Petunjuk: ubahnmenjadi string, lalu gunakan.len()padanya dan kurangi 1 untuk setiap.atau-yang ada di dalamnya. - Jika
to_stringbernilaifalse: parse stringssebagaif64menggunakan.parse(), lalu ubah tipenya menjadii32(yang membuang bagian desimal). Cetak dengan format:String as number: [number]
Misalnya, jikas = "123.67231", output-nya adalahString as number: 123.
Panggil convert_and_print dua kali:
- Pertama, dengan
to_stringdiatur kefalse. Ini menggunakan stringsdan mengabaikann. - Kedua, dengan
to_stringdiatur ketrue. Ini menggunakan angkandan mengabaikans.
Coba sendiri
use std::io;
fn convert_and_print(s: &str, n: f64, to_string: bool) {
// Tulis kodemu di sini
}
fn main() {
let mut input_number_str = String::new();
let mut input_n = String::new();
io::stdin().read_line(&mut input_number_str).unwrap();
io::stdin().read_line(&mut input_n).unwrap();
let n: f64 = input_n.trim().parse().unwrap();
let number_str = input_number_str.trim();
// Panggil convert_and_print dengan to_string = false
// Panggil convert_and_print dengan to_string = true
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaOperator PerbandinganPerbandingan String7Input/Output Dasar
Menampilkan teks di konsolMembaca input penggunaUlasan: Hingga 120Ulasan: Benar atau Salah5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ulasan: Logika SederhanaOperator Logika Bagian 311Fungsi
Mendeklarasikan FungsiParameter dan ArgumenNilai KembalianBeberapa Nilai KembalianRingkasan: Fungsi SigmaRingkasan: Fungsi Validasi14Iterasi pada Array
Panduan RangeFor Loop yang DisempurnakanBorrow dalam LoopOperasi Umum pada Array3Variabel Bagian 2
Deklarasi TipeKonvensi PenamaanInferensi TipeRangkuman: Inisialisasi VariabelKonversi Tipe9Perulangan
For untuk Menelusuri UrutanWhile LoopBreakContinueNested LoopLabel LoopInfinite LoopRingkasan: Input DinamisLatihan sendiri: Compiler Rust online