【问题标题】:How to Sum all the characters inserted into textbox on page load event?如何对页面加载事件中插入文本框中的所有字符求和?
【发布时间】:2013-04-16 08:17:42
【问题描述】:

我有以下给定参数:

Alphabet   Provided Value

S           2
U           3
M           5

我有一个带有默认文本 SUM 的文本框和一个显示 SUM 结果的标签,如果 s=2、U=3 和 M=5,我想对插入到文本框中的所有字母求和,例如 S+U+M并且作为输出显示在标签中的结果是 10

我想在 VB.NET 中编写用于执行此操作的程序

编辑:

Dim text = textbox1.text 
Dim sum = 0 
For Each c As Char In text 
    sum += c - 64 
Next

【问题讨论】:

  • 你试过什么? Stack Overflow 不是让其他人为您编写代码的地方。
  • Dim text = textbox1.text Dim sum = 0 For Each c As Char In text sum += c - 64 Next
  • 你在运行时遇到错误吗?
  • 我有一个错误...- 运算符未与 char 或 Integer 数据类型一起使用
  • 我得到了同样的错误 - 所以现在的问题是你为什么要从 Char 中减去 64?你希望它能给你带来什么?

标签: asp.net vb.net visual-studio visual-studio-2008


【解决方案1】:

我认为问题在于您试图从 Char 中减去 64 - 当我尝试您的代码时,我得到一个未为类型“Char”和“Integer”定义的“-”运算符。

尝试使用Asc获取ASCII值:

Dim text As String = textbox1.Text
Dim sum As Integer = 0

For Each c As Char in text
    sum += Asc(c) - 64
Next

但是,对于 SUM,您将得到 53,而不是 10。您使用什么系统来确定给定字母的数值?您发布的代码表示您减去 64 - 如果不是 ASCII,那么数字 64 是什么?

编辑

假设您为每个字母预定义了数值,我会将它们放在 Dictionary 中,其中 Char 作为键,Integer 作为值。然后你可以这样做:

Dim letterValues As New Dictionary(Of Char, Integer)

letterValues.Add("S", 2)
letterValues.Add("U", 3)
letterValues.Add("M", 5)
' You can add every letter with its predefined value this way

Dim text As String = textbox1.Text
Dim sum As Integer = 0

For Each c As Char in text
    sum += letterValues(c)
Next

结果将是 10。

【讨论】:

  • 我想使用在表格中插入的预定义值来计算文本中写入的文本
  • 是否只有 S、U 和 M 具有预定义值?还是其他字母也有预定义的值?
猜你喜欢
  • 2021-12-02
  • 2021-10-13
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
  • 2015-03-05
相关资源
最近更新 更多