我正在嘗試撰寫一個程式,該程式需要一個單詞串列,然后,如果單詞的長度為偶數,則列印兩個中間字母。如果單詞的長度為奇數,則列印單個中間字母。
我可以找到中間字母的索引,但我不知道如何使用該索引來列印單詞的相應字母。
fn middle(wds: &[&str)){
for word in wds{
let index = words.chars().count() /2;
match words.chars().count() % 2{
0 => println!("Even word found"),
_ => println!("odd word found")
}
}
}
fn main(){
let wordlist = ["Some","Words","to","test","testing","elephant","absolute"];
middle(&wordlist);
}
uj5u.com熱心網友回復:
您可以為此使用切片,特別是 &str 切片。注意&.
這些鏈接可能會有所幫助:
- https://riptutorial.com/rust/example/4146/string-slicing
- https://doc.rust-lang.org/book/ch04-03-slices.html
fn main() {
let s = "elephant";
let mid = s.len() / 2;
let sliced = &s[mid - 1..mid 1];
println!("{}", sliced);
}
uj5u.com熱心網友回復:
嘿,發布后我發現了兩種不同的方法,事實上我有兩種不同的方法讓我感到困惑并阻止我找到確切的答案。
//i fixed printing the middle letter of the odd numbered string with
word.chars().nth(index).unwrap()
//to fix the even index problem i did
&word[index-1..index 1]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/374142.html
