2016-09-25 9 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) для сохранения символов ZiP, потому что в тех случаях, когда молния будет содержать более 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' - это тип массива, который не имеет метода« Добавить » – Fabio

Смежные вопросы