문자열 자르기#
문자열 자르기 문법#
Rust는 문자열을 자르기 자르기 위한 편리한 문법을 제공합니다.
다음 코드를 통해서 알아봅시다.
fn main() {
let s = String::from("hello world");
println!("{}", &s[0..5]);
println!("{}", &s[6..11]);
println!("{}", &s[..5]);
println!("{}", &s[6..]);
println!("{}", &s[..]);
}&s[0..5] 처럼 코딩하면 "hello"를 잘라낼 수 있습니다.
여기서 0은 Start index를 의미하고, 5는 End index +1 를 의미합니다.
(End index에 +1 하여 사용한다는 것을 유의하세요.)&s[6..11] 처럼 코딩하면 "world"를 잘라낼 수 있습니다.
그리고, Start index를 생략하면 첫번째 원소를 가리키고, End index를 생략하면 마지막 원소를 가리킵니다.&s[..5] 처럼 Start index를 생략하면, 처음부터 index4까지 잘라내므로 "hello"가 추출됩니다.&s[6..] 처럼 End index를 생략하면, index6부터 마지막 원소까지 잘라내므로 "world"가 추출됩니다.
또한, &s[..]처럼 Start, End index를 생략 할 수도 있습니다.
[..] 문법은 integer, float type 등 모든 Collection 에서 사용 가능하다#
[..] 문법은 String type에서만 사용할 수 있는 것이 아닙니다.
Collection을 이루는 여러가지 type에서 사용할 수 있습니다.
다음 에제를 살펴 봅시다.
fn main() {
let a = [1, 2, 3, 4, 5];
let b = &a[1..3]; // --> b = [2, 3]
println!("{}, {}", b[0], b[1]);
let c = &a[..3];
let d = &a[2..];
let e = &a[..];
}a는 i32 type 원소를 가지는 배열이며, 여기에 [..] 문법을 동일하게 사용할 수 있습니다.&a[1..3] 처럼 코딩하면 index 1부터 index 2 까지 [2, 3]을 추출합니다.
앞에서 설명했던 String slice와 마찬가지로 Start, End, Start/End index를 생략할 수 있습니다.