Rust에서 문자열 분할
Nilesh Katuwal
2023년6월21일
이 기사에서는 Rust에서 문자열을 분할하는 방법에 대해 알아봅니다.
Rust에서 split()
문자열 메서드 사용
split ()
메서드는 문자열 조각의 하위 문자열에 대한 반복자를 반환합니다. 패턴을 통해 일치하는 문자로 구분됩니다.
결과는 나중에 사용할 수 있도록 저장할 수 없으며 split()
메서드가 제한 사항 중 하나입니다. collect()
메서드는 split()
에서 반환된 결과를 벡터 형식으로 저장할 수 있습니다.
예제 코드:
fn main() {
let words = "human,being,alive";
for token in words.split(","){
println!("token is {}",token);
}
println!("\n");
let tokens:Vec<&str>= words.split(",").collect();
println!("first_word is {}",tokens[0]);
println!("second_word is {}",tokens[1]);
println!("third_word is {}",tokens[2]);
}
위의 예는 쉼표 (,)
를 찾을 때마다 문자열 단어를 분할합니다.
출력:
token is human
token is being
token is alive
first_word is human
second_word is being
third_word is alive
아래 예제에서는 split()
메서드를 사용하여 공백을 기준으로 문자열을 구분합니다. 메서드가 반복자를 반환하므로 개별 문자열을 얻을 수 있습니다.
예제 코드:
fn main() {
let sentence = "This life can be amazing".split(" ");
for s in sentence {
println!("{}", s);
}
}
출력:
This
life
can
be
amazing
또 다른 용도는 Iterator::collect
를 사용하여 분리된 문자열을 벡터로 수집하는 것입니다.
예제 코드:
let sentence: Vec<&str> = "This life can be amazing".split(" ").collect();
println!("{:?}", sentence);
위의 코드는 분리된 문자열을 개별 요소로 사용하여 벡터를 만듭니다.
출력:
["This" "life" "can" "be" "amazing"]
char::is_uppercase
를 사용하여 대문자로 사용할 수 있는 문자열을 구분할 수도 있습니다.
예제 코드:
fn main() {
let words: Vec<&str> = "peopleIhumansIlifeIenjoy".split(char::is_uppercase).collect();
println!("{:?}", words);
}
출력:
["people" "human" "life" "enjoy"]
Rust에서 split_whitespace()
메서드 사용
split_whitespace()
는 입력 문자열을 다른 문자열로 분할하는 데 사용됩니다. 반복자를 반환하므로 토큰을 통해 반복할 수 있습니다.
예제 코드:
fn main(){
let words = "Rust is a programming language".to_string();
let mut i = 1;
for token in words.split_whitespace(){
println!("token {} {}",i,token);
i+=1;
}
}
출력:
token 1 Rust
token 2 is
token 3 a
token 4 programming
token 5 language