Member 12725211 Ответов: 3

Как найти количество слов в строке?


Public Sub word()
            Dim l, i, number As Integer
            no = 0
            Console.WriteLine("Type the text")
            s = Console.ReadLine()
            l = Len(s)
            Do While (i < l)
                If s(i) = "" Then
                    no = no + 1

                End If
                i = i + 1
                number = no
            Loop

            Console.WriteLine("The no of words is {0}", number)
        End Sub
    End Class


Что я уже пробовал:

я пробовал много раз ,но он говорит, что нет слов равно 0.

[no name]

Может быть, вам пора научиться пользоваться отладчиком, а не ждать, что мы будем учить вас программированию.

Member 12725211

Мне нравится твоя честность ...ладно, попробую, но несколько предложений не повредят

Maciej Los

Определите, что вы имеете в виду, говоря: "слово". Означает ли слово знак препинания как: {",", ";", "."} или {"Мисс", "Мистер"} и т. д.?

3 Ответов

Рейтинг:
1

Mehdi Gholam

Воспользуйся Split() : http://www.dotnetperls.com/split-vbnet[^]


Рейтинг:
1

Maciej Los

Пожалуйста, сначала прочтите мой комментарий к этому вопросу. Как я уже упоминал, это зависит от того, что вы определяете как слово.

Там очень много всего подобный вопрос[^] на этом форуме. Например:
Как разбить строку на слова[^]


Рейтинг:
0

Patrice T

Вы должны попробовать:

If s(i) = " " Then

между кавычками был добавлен пробел

В противном случае вы можете упростить свой код:
    Public Sub word()
        Dim l, i , number As Integer
        no = 0
        Console.WriteLine("Type the text")
        s = Console.ReadLine()
        l = Len(s)
        Do While (i < l)
            If s(i) = " " Then
                no = no + 1

            End If
            i = i + 1
            number = no
        Loop

        Console.WriteLine("The no of words is {0}", number no)
    End Sub
End Class


Richard MacCutchan

Можете ли вы быть уверены, что i является ли ноль в начале цикла? (Я не эксперт по VB, как вы уже догадались).

Patrice T

К сожалению, VB дает значения по умолчанию переменным и не применяет ручную инициализацию.

Richard MacCutchan

:большой палец вверх:

Maciej Los

Отчасти это правда. Это зависит от нескольких факторов. Для получения более подробной информации, пожалуйста, смотрите: Оператор Dim (Visual Basic) (Типы и значения данных по умолчанию - раздел)