1

以下のサブがあります。ユーザーが入力したテキストボックスから入力を取得し、各文字を特定の数値に置き換え、各単語の合計を表示してから、入力全体の合計を表示します。たとえば、ユーザーが aa bbb e と入力すると、txtbox5 の出力は次のようになります。

aa = 40
bbb = 90
e = 40
Total 170

ユーザーが 1 つの長い文を入力した場合、これは問題なく機能します。したがって、同じ方法で各文を個別に計算したいのですが、文の区切り文字はピリオドまたはコンマにすることができます。ユーザーが aa bbb と入力した場合。えぇ。出力は

aa = 40
ccc = 90
Total for the 1st sentence = 120
ff = 100
ee = 80
Total for the 2nd sentence = 180
and so forth

Private Sub Calculate(ByVal input As String)
    Dim total As Integer = 0
    Dim wordTotal As Integer
    Dim dicLetters As New Dictionary(Of Char, Integer)

    dicLetters.Add("A", 20)
    dicLetters.Add("B", 30)
    dicLetters.Add("E", 40)
    dicLetters.Add("F", 50)

    Dim charValue As Integer

    For Each word As String In input.Split(New Char() {" "})

        wordTotal = 0

        For Each character As Char In word

            wordTotal += If(dicLetters.TryGetValue(character, charValue) = _
            True, dicLetters(character), 0)
        Next

        total += wordTotal

        txtBox5.Text += word.PadRight(12) + " = " + _
        wordTotal.ToString().PadLeft(5) + vbNewLine
    Next

    txtBox5.Text += "Total:".PadRight(12) + " = " + _
    total.ToString().PadLeft(5)
End Sub
4

1 に答える 1