2017-05-06 1 views

答えて

0

Stringのメソッドfindを探しています。 "Program"'g'のインデックスを見つけるには、あなたは

"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 "ズ" 
関連する問題