0

我正在上一个介绍 Visual Basic 的编程课程,如果你们都愿意为我指出正确的方向,我需要一些帮助来完成作业。这是一项挑战任务,我应该自己弄清楚如何做这些事情,但我无法找到任何相关信息。

我要做的是让程序计算字符串中的单词数,然后打印这个数字。我在网上看无济于事,而且我还没有学会如何在课堂上做类似的事情。大家可以为我提供的任何帮助将不胜感激。我知道你不喜欢家庭作业,但我真的迷失了这个。

4

3 回答 3

1

一个起点,至少在 VBA 中(和 VB 有类似的功能,但我不知道你使用的是哪个版本),是使用 VBA.Split; 例如

VBA.Split(s, " ") 其中 s 是要拆分的字符串,而 " " 是分隔符(我们粗略地假设所有单词都用空格分隔)。

该函数返回一个字符串数组。您可以使用 UBound 和 LBound 函数来获取数组的大小。例如

Sub test()
    Dim s As String
    Dim arr() As String

    arr = VBA.Split("Hello there", " ")

    Debug.Print UBound(arr) - LBound(arr) + 1

End Sub

这将打印 2。

快乐编码!

于 2013-05-17T08:04:36.113 回答
1

好的,让我们说你的字符串是这样的:

string ThisIsYourSentence = "This is some pretty long and annoying sentence, now, isn't it?";

你注意到每个单词都被一个间隔“”分开。在 C# 中,有一个内置方法可以通过检查分隔字符串的特殊字符来分隔字符串中的字符串:

对于您的解决方案,您只需要创建一个新数组,每次遇到“”字符时,都会用一个单词填充。

string[] TheseAreYourWords = ThisIsYourSentence.Split(' ');

PS:哦,对不起,我什至没有看到你的意思是 VisualBasic,而不是 C#。

于 2013-05-17T08:09:57.767 回答
0

你可以调用这样的函数:

Public Function CountWords(ByVal value As String) As Integer
    ' Count matches.
    Dim collection As MatchCollection = Regex.Matches(value, "\S+")
    Return collection.Count
    End Function

或用空格字符分割给定的字符串并获取数组的长度。

于 2013-05-17T08:08:38.757 回答