2016-09-25 157 views
0

我几年来没有在VB中写过任何东西。我正在上中级班,正在遇到一个问题。我正在开发一个发票程序,它假定用户从一个文本框(城市状态和邮政编码)输入数据,并仅使用该邮政编码作为发票号码。我已经创建了一个存储用户数据的数组,但我无法弄清楚如何遍历它并只将数值写入另一个数组。一旦完成,我将需要遍历第二个数组并将数组内容写入一个字符串,以便它可以显示为发票号。任何帮助,将不胜感激如何将一个数组中的数字复制到另一个数组

'the array that holds the user city state and zip 

Dim UserZip As String = txtCItyStateZip.Text 
Dim UserArray() As Char = UserZip.ToCharArray 
Dim ZipArray(4) As Integer 

For num As Integer = 0 To UserArray.Length - 1 
    If IsNumeric(num) Then 
     ZipArray(num) 
     num += 1 
    End If 
Next` 
+0

删除'n + = 1'行。 'For loop'会自动增加数值 – Fabio

+1

如果使用[Option Strict On](https://msdn.microsoft.com/en-us/library/zcd4xwzs.aspx),它可能会指出您的代码存在一些问题,甚至建议修复。例如,'ZipArray(num)'这一行没有意义。 –

回答

0

保存拉链号码作为char阵列和使用string型这需要char数组作为参数的构造函数。

Dim UserZip As String = txtCItyStateZip.Text 
Dim UserArray() As Char = UserZip.ToCharArray 
Dim ZipChars As New List(Of Char)() 

For num As Integer = 0 To UserArray.Length - 1 
    Dim character As Char = UserArray(num) 
    If IsNumeric(character) Then 
     ZipArray.Add(character) 
    End If 
Next 

Dim ZipCode As String = New String(ZipChars.ToArray()) 

使用List(Of Char)保存拉链的角色,因为在情况下,当拉链将包含更多然后4号,你的代码会抛出异常。

+0

Downvoter - 请解释,所以我可以修复/改进一个答案 – Fabio

+0

感谢您的所有帮助和快速响应。这非常奏效。 – Orl213

-1

IsNumeric(num)将始终返回True。它应该是

For num As Integer = 0 To UserArray.Length - 1 
    If IsNumeric(UserArray(num)) Then 
     ZipArray.Add(UserArray(num)) 
    End If 
Next 
+0

'ZipArray'是数组类型,它没有'Add'方法 – Fabio

相关问题