2017-05-06 597 views

回答

0

您正在尋找String的find方法。要查找的'g'"Program"你可以做

"Program".find('g') 

Docs on find索引。

+0

感謝的人,現在我可以完成我的代碼=) – MrCoder

2

雖然有點更令人費解比我想的,另一種解決方案是使用Chars迭代器及其position()功能:

"Program".chars().position(|c| c == 'g').unwrap() 

find在接受的解決方案使用返回字節偏移並不見得角色的索引。它適用於基本的ASCII字符串,比如問題中的字符串,並且在與多字節Unicode字符串一起使用時會返回一個值,將結果值視爲字符索引會導致問題。

這工作:

let my_string = "Program"; 
let g_index = my_string.find("g"); // 3 
let g: String = my_string.chars().skip(g_index).take(1).collect(); 
assert_eq!("g", g); // g is "g" 

這不起作用:

let my_string = "プログラマーズ"; 
let g_index = my_string.find("グ"); // 6 
let g: String = my_string.chars().skip(g_index).take(1).collect(); 
assert_eq!("グ", g); // g is "ズ" 
相關問題