문자열 변환
Coddy Rust 여정의 기초 섹션에 포함된 레슨. 75개 중 71번째.
숫자 타입을 문자열로 변환하려면 to_string() 메서드를 사용할 수 있습니다. 이 메서드는 정수와 부동 소수점 수를 포함한 대부분의 데이터 타입에서 사용할 수 있습니다.
예를 들어:
let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);이 예제에서는 i32 변수 number를 String으로 변환합니다.
문자열을 숫자형으로 변환하려면 parse() 메서드를 사용할 수 있습니다. 이 메서드는 파싱된 숫자 또는 변환에 실패한 경우 오류를 포함하는 결과를 반환합니다.
예를 들어:
let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);이 예제에서는 parse() 메서드를 사용하여 문자열 number_str을 i32로 변환합니다. 변환이 성공한다고 가정하고 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_str을 f64로 변환합니다.
챌린지
쉬움convert_and_print라는 이름의 함수를 만들고 다음 세 가지 인수를 받도록 하세요:
- 문자열 슬라이스
s: &str. 텍스트로 작성된 숫자입니다(예:"123.67").to_string이false일 때만 사용됩니다. - 부동 소수점 수
n: f64: 실수입니다.to_string이true일 때만 사용됩니다. - 불리언
to_string: bool: 수행할 작업을 결정합니다.
함수는 다음 작업을 수행해야 합니다:
to_string이true인 경우:.to_string()을 사용하여n을 문자열로 변환한 다음, 문자열에 포함된 숫자 문자의 개수를 셉니다(점.또는 빼기 기호-는 세지 마세요). 다음 형식으로 출력합니다:Number: [string], Digits: [num of digits]
예를 들어n = -321.198623인 경우 문자열 형태는"-321.198623"이며, 숫자 문자는 9개입니다(-와.는 세지 않음).
힌트:n을 문자열로 변환한 다음, 문자열에.len()을 사용하고 포함된.또는-각각에 대해 1을 빼세요.to_string이false인 경우:.parse()를 사용하여 문자열s를f64로 파싱한 다음,i32로 캐스팅합니다(소수 부분은 버려짐). 다음 형식으로 출력합니다:String as number: [number]
예를 들어s = "123.67231"인 경우 출력은String as number: 123입니다.
convert_and_print를 두 번 호출하세요:
- 첫 번째는
to_string을false로 설정하여 호출합니다. 이때 문자열s를 사용하고n은 무시합니다. - 두 번째는
to_string을true로 설정하여 호출합니다. 이때 숫자n을 사용하고s는 무시합니다.
직접 해보기
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();
// convert_and_print를 to_string = false로 호출하세요
// convert_and_print를 to_string = true로 호출하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 Rust 컴파일러