2016-10-13 9 views
0

文中の個々の単語を識別してリストに格納するプログラムを作成するにはどうすればよいですか?私は、そのリストの単語の位置のリストを作成するプログラムを取得して、これらのリストを単一のファイルとして保存したいと考えています。空白" "によってビジュアルベーシックで単語のリストを保存する

モジュールのModule1

Sub Main() 
    Dim WordNumber As Integer = 0 
    Dim StartofWord As Integer = 1 
    Dim Text As String = "" 
    Dim L As Integer = 0 
    Dim Word As String 

    Console.WriteLine("Enter your sentence ") 
    Dim LotsofText As String = UCase(Console.ReadLine) 

    Console.WriteLine("Enter your word") 
    Word = UCase(Console.ReadLine()) 


    If Mid(LotsofText, Len(LotsofText) - 1, 1) <> " " Then LotsofText = LotsofText + " " 


    For L = 1 To LotsofText.Length 
     If (Mid(LotsofText, L, 1)) = " " Then 
      WordNumber = WordNumber + 1 
      Text = (Mid(LotsofText, StartofWord, L - StartofWord)) 
      'Console.WriteLine(Text) 
      StartofWord = L + 1 

      If Text = Word Then 
       Console.WriteLine(WordNumber) 

      End If 


     End If 

    Next 


    If Not Text = Word Then 
     Console.WriteLine("Error word not found") 

    End If 


    Console.Write("Press Enter to Exit") 
    Console.ReadLine() 


End Sub 

エンドモジュール

+0

あなたはLinqを探しているかもしれないとお考えください。 http://stackoverflow.com/questions/9645326/how-to-get-distinct-values-from-listof-t-using-linq – Bugs

+1

あなたの文脈で「単語」を定義するものは何ですか?空白で区切られている場合は、 'String.Split'を使用して単語の配列を取得できます – simonalexander2005

答えて

0

Splitあなたの文章、すべての単語をループし、現在の単語があなたの検索ワードに一致した場合、リストに位置を追加します。

Dim Sentence = "Hello from the other side and hello from hell" 
Dim SearchWord = "Hello" 

If Not String.IsNullOrWhiteSpace(Sentence) Then 
    SearchWord = SearchWord.Trim 
    Sentence = Sentence.Trim 
    Dim words = Sentence.Split(" ") 
    If Not words.Contains(SearchWord) Then Return 

    Dim searchWordPositions = New List(Of Integer) 
    For i = 0 To words.Length - 1 
     If words(i).Equals(SearchWord, StringComparison.InvariantCultureIgnoreCase) Then 
      searchWordPositions.Add(i) 
     End If 
    Next 
    Console.WriteLine(String.Concat("Found '", SearchWord, "' at Positions: ", String.Join(", ", searchWordPositions))) 
End If 

'Output: 
Found 'Hello' at Positions: 0, 6 

Console.WriteLineの代わりにファイルに書き込んでください。

関連する問題