首页 > 解决方案 > Visual Basic 中的元音计数

问题描述

所以我正在尝试进行元音计数,但我的代码不起作用。有人可以帮我吗?

    Dim nomes As String() = TextBox1.Text.Split(" ")
    Dim primeiro As String = nomes(0)
    Dim segundo As String = nomes(1)
    Dim letras As String = nomes(0) + nomes(1)
    Dim consoantes As Integer = 0
    Dim vogals As Integer = 0
    Dim i As Integer
    For i = 1 To Len(letras)
        If letras Like "[aeiou]" Then
            vogals = vogals + 1
        Else
            consoantes = consoantes + 1
        End If
    Next i
    MsgBox("Tens " + vogals.ToString + " vogais  e " + consoantes.ToString + " consoantes")
End Sub

标签: vb.net

解决方案


您可以将其缩短为:

Dim vogals, consoantes As Integer
For Each c As Char In TextBox1.Text
    If c Like "[aeiou]" Then
        vogals = vogals + 1
    ElseIf c Like "[bcdfghjklmnpqrstvwxyz]" Then
        consoantes = consoantes + 1
    End If
Next
MessageBox.Show("Tens " + vogals.ToString + " vogais  e " + consoantes.ToString + " consoantes")

这将忽略空格和任何其他不是元音或辅音的字符。

如果你想坚持使用索引 for 循环,那么:

Dim vogals, consoantes As Integer
For i As Integer = 0 To TextBox1.TextLength - 1
    Dim c As String = TextBox1.Text(i)
    If c Like "[aeiou]" Then
        vogals = vogals + 1
    ElseIf c Like "[bcdfghjklmnpqrstvwxyz]" Then
        consoantes = consoantes + 1
    End If
Next
MessageBox.Show("Tens " + vogals.ToString + " vogais  e " + consoantes.ToString + " consoantes")

推荐阅读