Rust - String의 특정 Index 값 가져오기

String의 문자들 중에서 특정 Index의 문자를 가져오는 방법에 대해서 알아보겠습니다.

특정 Index의 문자 가져오기

str[index] 방식은 러스트에서 허용 안됨

러스트에서는 아래와 같이 str[index]로 특정 Index 값에 접근하려고 하면 에러가 발생합니다.

fn main() {
    let str: String = String::from("Hello World");
    let char = str[4];
    println!("{}", char);
}

러스트는 이러한 방식을 허용하지 않기 때문에 위 코드를 실행하면 아래처럼 에러가 발생합니다.

error[E0277]: the type `String` cannot be indexed by `{integer}`
 --> src/main.rs:3:16
  |
3 |     let char = str[4];
  |                ^^^^^^ `String` cannot be indexed by `{integer}`

String slice를 이용하여 문자 가져오기

String slice를 이용하면 아래와 같이 특정 Index의 문자를 가져올 수 있습니다.

  • &str[4..5] 처럼 가져올 문자들의 Index 범위 설정
  • [4..5][4, 5)의 범위를 의미(Index 4는 포함하고 5는 포함하지 않는). 즉, Index 4의 값만 해당됨

아래 예제는 Index 4의 문자만 가져옵니다.

fn main() {
    let str: String = String::from("Hello World");
    let char = &str[4..5];
    println!("{}", char);
}

Output:

o

Index 범위의 문자들 가져오기

아래와 같이 String slice를 이용하여 다수의 문자들을 가져올 수 있습니다.

  • [1..5]는 1을 포함하고 5를 포함하지 않는 Index 범위이므로, Index 1~4의 문자들을 가져옴

아래 예제는 String에서 Index 1~4의 문자들을 가져옵니다.

fn main() {
    let str: String = String::from("Hello World");
    let char = &str[1..5];
    println!("{}", char);
}

Output:

ello
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha