计算大写字母Visual Studio

时间:2011-12-13 01:49:45

标签: vb.net

我只能使用vba或java找到答案。 我从文本框中获取用户输入并计算给定的大写字符数。 这是功课,所以如果你能指出我正确的方向,我会非常感激。

Private Sub BtnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)     Handles BtnGo.Click
    Dim Phrase As String
    Dim CharPhrase As Char 'Convert Phrase to char for sting comparison
    Dim Counter As Integer = 0 'used to measure the characters in textbox
    Dim Caps As Integer = 0 'How many capitals are there?
    Phrase = TxtboxPhrase.Text
    If Phrase.Length <= 15 Then
        MsgBox("There must be at least 15 characters in textbox")
        Exit Sub
    End If
    While Counter <= Phrase.Length
'Code for counting here
    End While
    MsgBox("There are " & Caps & " capital letters in the current phrase")
    Call ProgQuit()
End Sub

4 个答案:

答案 0 :(得分:3)

我是C#开发人员,但这是我在VB.NET中使用的算法:

Private Function CountUpper(str As String) As Integer
Dim ucount As Integer = 0

For Each c As Char In str
    Dim charCode As Integer = AscW(c)

    If charCode >= 65 AndAlso charCode < 91 Then
        ucount += 1
    End If
Next

Return ucount
End Function
编辑:我通过C#到VB转换器运行此代码,因此可能存在一些问题。我刚刚解决了一个明显的问题。

答案 1 :(得分:0)

我假设你在这里使用VB.NET,它看起来像你,但我编写C#,而不是VB,所以我不确定。您将需要遍历字符串。您可以轻松完成此操作,因为string实施了IEnumerable

您可以使用两种方法来测试大小写。您可以将其转换为整数,并查看它是否高于整数值A或低于Z的整数值。您还可以考虑将字符串与字符数组进行比较。

答案 2 :(得分:0)

您可以使用substr获取字符串的子字符串。例如,您的字符串的第三个字符可以通过以下方式获得:

Dim StrCh as String
: :
StrCh = Phrase.Substring (2,1)

第三个字符是2,因为第一个字符位于0位置。 1是从该位置开始提取的字符数。

然后你可以检查字符是否为大写,通过检查字符是否在大写时更改 - 如果不是,则字符已经大写。类似的东西:

If StrCh = StrCh.ToUpper() Then
    ... is uppercase
End If

这些提示应足以让您完成工作。

答案 3 :(得分:0)

使用 LINQ,您可以:

Dim Caps As Integer = (From x As Char In Phrase.ToCharArray() Where Char.IsUpper(x) Select x).ToArray().Count