2016-10-14 10 views
0

文字列の配列の単語のインデックスを取得したいと思います。たとえば、 と入力すると、「私はあなたを愛しています」という文章が入力されます。 私は言葉[1] =愛を持っている、私はどのように '愛'の位置を得ることができます1ですか?私はそれを行うことができますが、if州の中だけです。私はそれを外に持っていきたい。私を助けてください。 これは私のコードです。文字列の配列の単語のインデックスを取得する方法

static void Main(string[] args) 
    { 
     Console.WriteLine("sentence: "); 
     string a = Console.ReadLine(); 
     String[] words = a.Split(' '); 
     List<string> verbs = new List<string>(); 
     verbs.Add("love"); 
     int i = 0; 
     while (i < words.Length) { 
      foreach (string verb in verbs) { 
       if (words[i] == verb) { 
        int index = i; 
        Console.WriteLine(i); 

       } 
      } i++; 
     } 

     Console.ReadKey(); 
    } 

答えて

0

は、ここで私はそれを行うが、ちょうどかの状態の内側ができ例

var a = "I love you."; 
var words = a.Split(' '); 
var index = Array.IndexOf(words,"love"); 
Console.WriteLine(index); 
1

です。私はそれを外に持っていきたい。

あなたのコードはインデックスを正しく識別します。あなたが今行う必要があるのは、ループの外で使用するために保存することだけです。

intのリストを作成し、あなたが特定の一致のためにそれにAddを呼び出す:

var indexes = new List<int>(); 
while (i < words.Length) { 
    foreach (string verb in verbs) { 
     if (words[i] == verb) { 
      int index = i; 
      indexes.Add(i); 
      break; 
     } 
    } 
    i++; 
} 

あなたはforContainsメソッドの呼び出し、および外部ループと内部ループを置き換えることができます:

for (var i = 0 ; i != words.Length ; i++) { 
    if (verbs.Contains(words[i])) { 
     indexes.Add(i); 
    } 
} 

最後に、全体のシーケンスは、単一のLINQクエリに変換することができます。

​​
0
private int GetWordIndex(string WordOrigin, string GetWord) 
{ 
    string[] words = WordOrigin.Split(' '); 

    int Index = Array.IndexOf(words, GetWord); 

    return Index; 
} 

機能に応じて、あなたはGetWordIndex("Hello C# World", "C#");としての機能と呼ばれると仮定しWordOriginHello C# WorldあるとGetWordは今C#

です:

  1. string[] words = WordsOrigin.Split(' ');array of stringsに文字列リテラルを破ったところ単語はその間にspacesごとに分割されます。したがって、Hello C# Worldは、Hello,C#、およびWorldに分類されます。

  2. int Index = Array.IndexOf(words, GetWord);は、私が提供したサンプルによると、私たちはその後、Array of String

  3. return Index;に分割されHello C# Worldから単語C#を探しているされているものGetWordのインデックスは、単にそれが位置していたものは何でもインデックスを返し取得しますから

関連する問題