Rust - String을 Int, Float으로 변환

러스트에서 String(str)을 Integer, Float 등의 숫자로 변환하는 방법을 소개합니다.

1. parse()를 이용하여 Int, Float 변환

str.parse::<Type>()는 문자열을 파싱하고 Result<Type, ParseIntError> 타입으로 리턴합니다.

리턴된 값에 unwrap()을 호출하여 Result 안에 저장된 숫자를 가져올 수 있습니다.

아래와 같이 Int와 Float의 문자열을 변환할 수 있습니다.

fn main() {
    let str1: &str = "123";
    let num1: i32 = str1.parse::<i32>().unwrap();
    println!("str: {}, num: {}", str1, num1);

    let str2: &str = "123.456";
    let num2: f32 = str2.parse::<f32>().unwrap();
    println!("str2: {}, num2: {}", str2, num2);
}

Output:

str: 123, num: 123
str2: 123.456, num2: 123.456

2. from_str()을 이용하여 Int, Float 변환

Type::from_str(&str).unwrap()을 이용하여 문자열을 int나 float 타입으로 변환할 수 있습니다.

  • from_str()을 사용하려면 use std::str::FromStr; import 필요
use std::str::FromStr;

fn main() {
    let str1: &str = "123";
    let num1: i32 = i32::from_str(&str1).unwrap();
    println!("str: {}, num: {}", str1, num1);

    let str2: &str = "123.456";
    let num2: f32 = f32::from_str(&str2).unwrap();
    println!("str2: {}, num2: {}", str2, num2);
}

Output:

str: 123, num: 123
str2: 123.456, num2: 123.456

3. String 타입 객체를 숫자로 변환

위의 예제는 기본 문자열 타입 str을 i32, f32 등으로 변환하는 예제입니다.

String 타입의 경우도, 위와 동일한 방법으로 변환할 수 있습니다.

fn main() {
    let str1: String = String::from("123");
    let num1: i32 = str1.parse::<i32>().unwrap();
    println!("str: {}, num: {}", str1, num1);

    let str2: String = String::from("123.456");
    let num2: f32 = str2.parse::<f32>().unwrap();
    println!("str2: {}, num2: {}", str2, num2);
}

Output:

str: 123, num: 123
str2: 123.456, num2: 123.456

또한, from_str()를 사용하여 변환할 수 있습니다.

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha