我在下面有以下内容。它的作用是从用户输入的文本框中获取输入,用特定的数值替换每个字母,显示每个单词的总数,然后显示整个输入的总数。例如,如果用户键入aa bbb e,则txtbox5中的输出为:
aa = 40
bbb = 90
e = 40
Total 170
如果用户输入一个长句子,那会很好。因此,我想以相同的方式分别计算每个句子,并且该句子的分隔符可以是句点或逗号。如果用户键入aa bbb。ff ee。输出应
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
使用Split方法创建句子数组。它将接受一个定界符数组。遍历数组并将每个句子和句子的索引传递给子例程。在子例程中,添加一个整数参数用作句子编号,然后更改输出字符串。
像这样的东西:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Sentences() As String = TextBox1.Text.Split({","c,"."c})
For I = 0 to Sentences.Count-1
Calculate(Sentences(I), I+1)
Next
End Sub
Private Sub Calculate(ByVal input As String, ByVal index As Integer)
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 for sentence " + index.ToString +" :" + " = " + _
total.ToString().PadLeft(5)
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句