Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Buat fungsi bernama convert_and_print yang menerima tiga argumen:

  1. Potongan string s: &str. Ini adalah angka yang ditulis sebagai teks (misalnya, "123.67"). Nilai ini hanya digunakan saat to_string bernilai false.
  2. Float n: f64: angka titik mengambang. Nilai ini hanya digunakan saat to_string bernilai true.
  3. Boolean to_string: bool: menentukan operasi yang akan dilakukan.

Fungsi ini harus melakukan operasi berikut:

  • Jika to_string bernilai true: ubah n menjadi 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, jika n = -321.198623, bentuk string-nya adalah "-321.198623", yang memiliki 9 karakter digit (tanpa menghitung - dan .).

    Petunjuk: ubah n menjadi string, lalu gunakan .len() padanya dan kurangi 1 untuk setiap . atau - yang ada di dalamnya.
  • Jika to_string bernilai false: parse string s sebagai f64 menggunakan .parse(), lalu ubah tipenya menjadi i32 (yang membuang bagian desimal). Cetak dengan format:
    String as number: [number]

    Misalnya, jika s = "123.67231", output-nya adalah String as number: 123.

Panggil convert_and_print dua kali:

  1. Pertama, dengan to_string diatur ke false. Ini menggunakan string s dan mengabaikan n.
  2. Kedua, dengan to_string diatur ke true. Ini menggunakan angka n dan mengabaikan s.

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
    
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Rust online