Vb.net VB 2017中的单词和元音计数
我需要编写一个简单的控制台应用程序,它接受一个输入字符串,然后调用一个子例程来计算字符串中的单词数量和元音数量。我写了这个,由于某种原因,它没有输出我放在Vb.net VB 2017中的单词和元音计数,vb.net,visual-studio,visual-studio-2017,word-count,Vb.net,Visual Studio,Visual Studio 2017,Word Count,我需要编写一个简单的控制台应用程序,它接受一个输入字符串,然后调用一个子例程来计算字符串中的单词数量和元音数量。我写了这个,由于某种原因,它没有输出我放在控制台中的文本。有关于如何做的帮助吗 Module Module1 Sub Main() Dim Sentence As String Console.WriteLine("Sentence Analysis") Console.WriteLine() Console.W
控制台中的文本。有关于如何做的帮助吗
Module Module1
Sub Main()
Dim Sentence As String
Console.WriteLine("Sentence Analysis")
Console.WriteLine()
Console.WriteLine("Enter a sentence then press 'Enter'")
Console.WriteLine()
Sentence = Console.ReadLine()
Sentence = Sentence.ToUpper
Call Words(Sentence)
Call Vowels(Sentence)
Console.ReadLine()
End Sub
Sub Words(ByVal Input As String)
Dim Count As Integer
Dim Index As Short
Dim Character As Char
Do Until Index = Len(Input)
Character = Input.Substring(Index)
If Character = " " Then
Count = Count + 1
End If
Loop
Console.WriteLine("Your sentence contains {0} words.", (Count))
End Sub
Sub Vowels(ByVal Input As String)
Dim Count As Integer
Dim Vowels() As String = {"A", "E", "I", "O", "U"}
Dim Index As Short
Dim Character As Char
Do Until Index = Len(Input)
Character = Input.Substring(Index)
If Character = Vowels(Index) Then
Count = +1
End If
Loop
Console.WriteLine("Your sentence contains {0} words.", (Count))
End Sub
End Module
在Words
中,您有以下代码:
Do直到索引=Len(输入)
索引从不递增,因此循环无限
在元音
和单词中都有相同的问题,您有以下代码:
Do直到索引=Len(输入)
索引从不递增,因此循环无限
元音中的相同问题
以及以下内容对您有帮助吗
它不是看句子是否包含元音,而是看元音列表是否包含句子中的每个字符
对于单词计数,它同样会询问包含单个空格的字符串是否包含句子中的每个字符(本例中的“单词计数”只是一个空格计数,因此前导或尾随空格,或单词之间的额外空格,将被计为额外单词,就像您的代码当前所做的那样)
它还允许我们取消单独的方法调用和手动循环代码,正如您所看到的,这些代码容易出现小错误(我个人建议使用For
循环,而不是Do,直到在这种情况下使用循环,因为For
循环被设计为自动增加索引)
以下内容对您有帮助吗
它不是看句子是否包含元音,而是看元音列表是否包含句子中的每个字符
对于单词计数,它同样会询问包含单个空格的字符串是否包含句子中的每个字符(本例中的“单词计数”只是一个空格计数,因此前导或尾随空格,或单词之间的额外空格,将被计为额外单词,就像您的代码当前所做的那样)
它还允许我们取消单独的方法调用和手动循环代码,正如您所看到的,这些代码容易出现小错误(我个人建议使用For
循环,而不是Do,直到在这种情况下使用循环,因为For
循环被设计为自动增加索引)
除了朋友的回答之外,您在元音
方法中还有一个输入错误:Count=+1
-这将始终使Count=1
。要增加它,请执行Count=Count+1
或Count+=1
。此外,元音(索引)
在索引
大于4时将超出范围。在Do
循环中使用或添加另一个循环来迭代每个元音。除了朋友的答案,您在元音
方法中有一个输入错误:Count=+1
-这将始终使Count=1
。要增加它,请执行Count=Count+1
或Count+=1
。此外,元音(索引)
在索引
大于4时将超出范围。改为使用或添加另一个循环,迭代Do
循环中的每个元音。
Sub Main()
Console.WriteLine("Sentence Analysis")
Console.WriteLine()
Console.WriteLine("Enter a sentence then press 'Enter'")
Console.WriteLine()
Dim sentence As String
sentence = Console.ReadLine()
Dim vowel_count As Integer = sentence.Count(Function(c) "aeiou".Contains(Char.ToLower(c)))
Dim word_count As Integer = sentence.Count(Function(c) " ".Contains(Char.ToLower(c)))
Console.WriteLine("Your sentence contains {0} words.", word_count)
Console.WriteLine("Your sentence contains {0} vowels.", vowel_count)
Console.ReadLine()
End Sub