我正在创建一个程序,其中代码需要从字符串中的每个字符获取一个值(长度可能不同)。例如名称,例子,Tony,其中T = 1,O = 4,N = 7,Y = 3.这必须增加总数。我已经尝试过循环,但只输出1作为输出,即使字符串中没有值也没有。
Dim FNTL As Integer = Nothing
Dim FN = FN_TBX.Text
For Each A, J, S As Char In FN_TBX.Text
FNTL = +8
Next
Dim FNTLstr
FNTLstr = Convert.ToString(FNTL)
LN_TBX.Text = FNTL
FN_TBX是文本框输入 FN是文本框输入 FNTL是总数 FNstr是字符串格式的总数
某些字符具有相同的值,例如上面的,A,J,S是=到8.整数转换是将总数显示为文本框。
答案 0 :(得分:2)
逻辑并不完全清楚。也许您应该有一个Dictionary(Of Char, Int32)
来获取每个char的值,如果没有定义,则返回值。
以下是一个声明为类字段的字典示例:
Dim _charValue As New Dictionary(Of Char, Int32) From
{
{"t"c, 1}, {"T"c, 1},
{"o"c, 4}, {"O"c, 4},
{"n"c, 7}, {"N"c, 7},
{"y"c, 3}, {"Y"c, 3},
{"a"c, 8}, {"A"c, 8},
{"j"c, 8}, {"J"c, 8},
{"s"c, 8}, {"S"c, 8}
}
现在您可以计算方法中的总和,例如使用简单的循环:
Dim sum as Int32 = 0
For Each c As Char In FN_TBX.Text
Dim charValue = 0
If Not _charValue.TryGetValue(c, charValue)
charValue = 1 ' fallback value
End If
sum += charValue
Next
LN_TBX.Text = sum.ToString()