Menu
Coddy logo textTech

문자열 변환

Coddy Rust 여정의 Fundamentals 섹션에 포함된 레슨 — 75개 중 71번째.

숫자 타입을 문자열로 변환하려면 to_string() 메서드를 사용할 수 있습니다. 이 메서드는 정수와 부동 소수점 숫자를 포함한 대부분의 데이터 타입에서 사용할 수 있습니다.

예를 들어:

let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);

이 예제에서는 i32 변수인 numberString으로 변환하고 있습니다.

문자열을 숫자 유형으로 변환하려면 parse() 메서드를 사용할 수 있습니다. 이 메서드는 변환에 성공하면 파싱된 숫자를, 실패하면 에러를 포함하는 결과를 반환합니다.

예를 들어:

let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);

이 예제에서는 parse() 메서드를 사용하여 문자열 number_stri32로 변환합니다. unwrap() 메서드는 변환이 성공적이라고 가정하고 Result에서 값을 추출하는 데 사용됩니다.

변환에 실패하면 프로그램은 패닉(실패) 상태가 됩니다.

또한 다양한 숫자 타입과 함께 parse()를 사용할 수 있습니다:

let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);

이 경우, 문자열 float_strf64로 변환하고 있습니다.

challenge icon

챌린지

쉬움

세 개의 인자를 받는 convert_and_print라는 이름의 함수를 생성하세요:

  1. 문자열 슬라이스 s: &str — 이것은 텍스트로 작성된 숫자입니다 (예: "123.67"). to_stringfalse일 때만 사용됩니다.
  2. 부동 소수점 숫자 n: f64. to_stringtrue일 때만 사용됩니다.
  3. 불리언 to_string: bool — 수행할 작업을 결정합니다.

함수는 다음 작업을 수행해야 합니다:

  • 만약 to_stringtrue라면: .to_string()을 사용하여 n을 문자열로 변환한 다음, 포함된 숫자 문자의 개수를 셉니다 (마침표 .나 마이너스 기호 -는 세지 않습니다). 다음 형식으로 출력하세요:
    Number: [string], Digits: [num of digits]

    예를 들어, n = -321.198623인 경우, 문자열 형태는 "-321.198623"이며, 9개의 숫자 문자를 가집니다 (-.는 제외).

    힌트: n을 문자열로 변환한 다음, .len()을 사용하고 포함된 각 . 또는 -에 대해 1씩 뺍니다.
  • 만약 to_stringfalse라면: .parse()를 사용하여 문자열 sf64로 파싱한 다음, 이를 i32로 캐스팅합니다 (소수점 이하 자리는 버려집니다). 다음 형식으로 출력하세요:
    String as number: [number]

    예를 들어, s = "123.67231"인 경우, 출력은 String as number: 123입니다.

convert_and_print를 두 번 호출하세요:

  1. 첫 번째는 to_stringfalse로 설정하여 호출합니다 — 이 경우 문자열 s를 사용하고 n은 무시합니다.
  2. 두 번째는 to_stringtrue로 설정하여 호출합니다 — 이 경우 숫자 n을 사용하고 s는 무시합니다.

치트 시트

숫자 타입을 문자열로 변환하려면 to_string() 메서드를 사용하세요:

let number = 42;
let number_str = number.to_string();

문자열을 숫자 타입으로 변환하려면 parse() 메서드를 사용하세요:

let number_str = "123";
let number: i32 = number_str.parse().unwrap();

parse() 메서드는 다양한 숫자 타입과 함께 작동합니다:

let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();

unwrap() 메서드는 Result에서 값을 추출합니다. 만약 변환에 실패하면 프로그램은 패닉(panic) 상태가 됩니다.

직접 해보기

use std::io;

fn convert_and_print(s: &str, n: f64, to_string: bool) {
    // 여기에 코드를 작성하세요
}

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();

    // to_string = false로 convert_and_print 호출
    
    
    // to_string = true로 convert_and_print 호출
    
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Fundamentals의 모든 레슨