2016-09-28 6 views
1

最近Visual Basicで開始したので、あまり慣れていません。私はコンピューティングには新しいので、私と一緒に熊!私は、文章中の特定の単語を数えるフォームプログラムを作ろうとしています。あなたが私のコードから見ることができるように、私はそれほど遠くない。私がしなければならないことは、2つのテキストボックスが一致するかどうかを教えてくれることだけです。もし誰かが私に解決策を教えてくれたら、本当に感謝しています!どうもありがとう。特定の単語が1つの文で出現する回数をカウントするVBプログラム

コード:

Public Class Form1 
    Dim Counter As Integer = 0 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

     If Word.Text = Sentence.Text Then 
      Counter1.Text = Counter + 1 
     End If 
    End Sub 

End Class 

答えて

0

VB.NETやC#あなたがexising C# solutionを適応させることができるように、同じ基礎となるオブジェクトモデルを使用します。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    If Word.Text.Length = 0 Then 
     counter = 0 
    Else 
     counter = (Sentence.Text.Length - Sentence.Text.Replace(Word.Text,"").Length)/Word.Text.Length 
    End If 
    Counter1.Text = counter 
End Sub 

この方法はループせずに、一度にすべてのocurrencesをカウントし、あなたはインクリメンタは必要ありません。

はここにあなたのサブはどのように見えるかです。

@ romulus001に言及すると、Word.Textの長さは0になる可能性があるため、これを分割する前に確認する必要があります。 Word.Textの長さがゼロの場合、文字通り何も探していないので、必要な数はおそらくゼロです。

+0

Wordフィールドが空白の場合はどうなりますか?あなたは0で割ることはできません – romulus001

+0

ありがとう、本当にありがとうございます –

+0

私たちは助けてくれること間違いなしです。 –

0

それは大文字と小文字を区別かでなければならないかどうかは知りませんが、これらのコードのいずれかを使用できます。その後、

1)

Counter = Sentence.Text.split(Word.Text).Length - 1 'if the search is case sensitive 

2)

Counter = Sentence.Text.toUpper.split(Word.Text.toUpper).Length - 1 'if the search is NOT case sensitive` 

を:

Counter1.Text = Counter 
関連する問題