#visual-studio-2008
#visual-studio-2008
Вопрос:
Я хочу написать код в VB 2008 для последовательных чисел, если они не являются последовательными, запишите их последовательно.
Например: Если у меня есть список целых чисел = 1, 2, 3, 4, 10, 11, 15
Я хочу, чтобы такой язык был передан
с 1 по 4, 10, 11 и 15
Пожалуйста, помогите мне!
Спасибо
Комментарии:
1. Нет, это не домашнее задание .. мне нужно сделать на моей работе .. нужно создать документ Word с таким языком
Ответ №1:
По сути, вам нужно перебрать их и применить набор правил для вывода в зависимости от предыдущего значения. Также из вашего примера вывода вам нужно будет проверить, достигли ли вы конца массива.
Вот довольно подробный способ сделать это (vb.net это не тот язык, который я обычно использую, поэтому, пожалуйста, простите любые ошибки):
Public Shared Function TestMethod() As String
Dim _integers() As Integer = {1, 2, 3, 4, 10, 11, 15}
Dim _temp As Integer = _integers(0)
Dim _result As String = _temp.ToString()
For i As Integer = 1 To _integers.Length - 1
If (i 1) = _integers.Length Then
_result = " and " _integers(i).ToString()
ElseIf (_integers(i) - _temp) = 1 Then
_result = ", " _integers(i).ToString()
Else
_result = " through " _integers(i).ToString()
End If
_temp = _integers(i)
Next
Return _result
End Function
Комментарии:
1. Спасибо, ваше решение работает для примера, который я перечислил, но если я увеличу длину целого числа, я получу неверный вывод.