2016-08-23 13 views
0
If ArrySentence.Contains(InputString) Then 
    Dim index As Integer = Array.IndexOf(ArrySentence, InputString) 

    Do Until a >= ArrySentence.GetUpperBound(0) + 1 
     Dim position As Integer = index + 1 
     index = Array.IndexOf(ArrySentence, InputString, position) 

     Console.WriteLine("The word ""{0}"" is at position {1}.", InputString, position) 
     a = a + 1 
    Loop 

それはほとんど行われていますが、問題が出力線の一部を繰り返しているが好き:

ワードAppleが位置2
リンゴがある言葉であるリンゴの木から文に
リンゴの秋を入力してください。位置6で
リンゴという語は2位にあります
appleという語は6番の位置にあります
出力で繰り返し行を削除するにはどうすればよいですか?

Help!

+0

ありがとうブラックウッド! – user6740647

+0

プログラムのテストに使用している文章を入力できますか? – crimson589

答えて

0

あなたのループの背後にある推論は本当に理解できません。あなたがしたいことは次のとおりです:配列内の単語を検索します。存在する場合は、その位置を表示します。それ以外は終了します。やり直してください。ここで

は、私はそれを行うだろうかです:

Dim index As Integer = Array.IndexOf(ArrySentence, InputString) 
While index >= 0 'while the word has been found 
    'Output the occurrence 
    Console.WriteLine("The word ""{0}"" is at position {1}.", InputString, index + 1) 
    'Search for the next occurrence 
    index = Array.IndexOf(ArrySentence, InputString, index + 1) 
End While 
+0

あなたはもう少し具体的にする必要があります... –

+0

それは今、私は=サインインインデックス> 0を動作します。ありがとう! – user6740647

+0

ああ、そうです。 '> ='でなければなりません。 –

0

は、このいずれかを試して申し訳ありませんが、私はあなたが作られたものと間違って何を探すためにしようとしませんでした。

Dim sentence as String = "The apple fall from the apple tree" 
Dim words As String() = sentence.Split(New Char() {" "c}) 

For i = 0 To words.Length - 1 
    If InputString = words(i) Then 
      Console.WriteLine("The word ""{0}"" is at position {1}.", InputString, i + 1) 
    End If 
Next 
関連する問題