【问题标题】:How do I convert each element of a string array to an integer? (VB)如何将字符串数组的每个元素转换为整数? (五)
【发布时间】:2018-05-16 11:01:48
【问题描述】:

对于我当前的任务,我必须使用数组读取 8 位卡号。我在代码的开头声明了我的数组:

Dim LoyaltyCardDigits(8) As Integer

我之所以将它声明为整数,是因为我需要在读入这些数组元素后对其进行计算。 我正在从文本框中读取 8 个字符,然后将这些字符分配给一个变量。

CardNumber = txtCardNumber.Text

我将这些字符分配给数组元素;但这是我遇到的问题。

Private Sub btnSubmitDetails_Click(sender As Object, e As EventArgs) Handles btnSubmitDetails.Click

    For Counter = 1 To 8
        LoyaltyCardDigits(Counter) = Mid(CardNumber, Counter, 1)
    Next Counter

所以总结一下,我想要一个将数组元素从字符串转换为整数的解决方案,以便我可以执行计算。我无需担心验证,因为我已经对其进行了编码。由于我对 VB 非常陌生,因此我希望尽可能简化任何帮助,但我显然会接受任何可行的方法。

【问题讨论】:

  • 首先要注意的是 .NET 数组是从零开始的,所以数组中的索引应该从 0 到 7。第二件事是你已经告诉我们你想要做什么并提供了您用来执行此操作的代码,但没有说明该代码的行为如何不满足您的需求。
  • 这是我在单击“提交”按钮时收到的错误消息 - Microsoft.VisualBasic.dll 中发生了“System.InvalidCastException”类型的未处理异常附加信息:从字符串“”转换为“整数”类型' 无效。

标签: arrays string vb.net integer


【解决方案1】:

你说你已经完成了验证,所以试试这样的:

Private Sub btnSubmitDetails_Click(sender As Object, e As EventArgs) Handles btnSubmitDetails.Click
    If CardNumber.Length = 8 Then
        For i As Integer = 0 To 7
            LoyaltyCardDigits(i) = CInt(CardNumber.Substring(i, 1))
        Next

        ' ... now do something with LoyaltyCardDigits ...

    End If
End Sub

【讨论】:

  • 感谢您的回复。我已经尝试过了,我收到了这条消息:受控评估 Project.exe 中发生了“System.NullReferenceException”类型的未处理异常附加信息:对象引用未设置为对象的实例。
  • 它指向哪一行?...需要更多信息来帮助你。
  • 我编辑了它,现在似乎可以正常工作了,谢谢。
猜你喜欢
  • 2015-08-02
  • 2015-01-04
  • 2017-02-27
  • 2020-04-29
  • 1970-01-01
  • 2017-12-22
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
相关资源
最近更新 更多