计算字符串中的单词

时间:2013-05-17 07:57:42

标签: vb.net

我正在参加一个介绍Visual Basic的编程课程,如果你们都非常友好地指出我正确的方向,我需要一些帮助。这是一个挑战任务,我应该自己弄清楚如何做这些事情,但我还没有找到任何相关的东西。

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

3 个答案:

答案 0 :(得分:1)

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

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

此函数返回一个字符串数组。您可以使用UBound和LBound函数来获取数组的大小。 E.g。

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。

快乐的编码!

答案 1 :(得分:1)

好的,我们说你的字符串就像:

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

您注意到每个单词之间的间隔为“”。在C#中有一个内置方法,它通过检查一个特殊字符来分隔字符串中的字符串:

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

string[] TheseAreYourWords = ThisIsYourSentence.Split(' ');
P:哦,对不起,我甚至没有看到你的意思是VisualBasic,而不是C#。

答案 2 :(得分: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

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