【问题标题】:Count specific character in string using SubString使用 SubString 计算字符串中的特定字符
【发布时间】:2016-01-23 03:09:58
【问题描述】:

我正在自学 VB.net,我正在努力完成挑战。

我被困在这个挑战中。

我试图弄清楚如何使用 SubString 计算字符串中的特定字符。

我不应该使用以下字符串处理函数:Trim、ToUpper、ToLower、Indexof、SubString。

为字母表的每个元音添加一个按钮。单击时,输出是输入文本中该元音的计数。使用按钮单击事件处理程序下的代码 SubString 显示相应字符在文本中出现的次数。

这是我目前所拥有的,但我应该如何合并SubString?

    Dim counter As Integer = 0
    For Each vowelA As Char In TextBox1.Text
        If vowelA = "a" Then
            counter += 1
        End If

        If vowelA = "A" Then
            counter += 1
        End If

    Next

【问题讨论】:

  • 看起来更像家庭作业;0)

标签: vb.net string substring


【解决方案1】:

这里我也合并了 .ToUpper 所以你不需要比较 "a" 和 "A"

Dim counter As Integer = 0
For i = 0 To TextBox1.Text.Length - 1
    If TextBox1.Text.ToUpper.Substring(i, 1) = "A" Then
        counter += 1
    End If
Next

【讨论】:

  • 非常感谢!我只需要修复您的一些代码,因为它最初无法正常工作
  • 我必须做到Textbox1.Text.Length - 1
【解决方案2】:

不使用substring() 函数,

 Function count_vowels(ByVal str As String, ByVal chr As String) As Integer
        str = str.ToUpper()
        chr = chr.ToUpper()
        count_vowels = str.Split(chr).Length - 1
        Return count_vowels
 End Function

用法:

Dim counter As Integer = 0
counter = count_vowels(TextBox3.Text, "a")

或者干脆使用

 counter = TextBox1.Text.ToUpper.Split("a".ToUpper).Length - 1

【讨论】:

  • 我在这里没有看到 SubString。
  • 这个方法不需要substring所以看不到
  • 问题说明要具体使用 SubString
  • 是的,我可以看到。IMO 发布一个解决问题的答案并没有什么坏处。如果您不想将此作为答案,那就顺其自然吧,未来的访问者可能会发现这很有用跨度>
【解决方案3】:

试试这样的:

    Dim pos As Integer = 0
    Dim letter as String
    While pos < TextBox1.Text.Length
        letter = TextBox1.Text.Substring(pos, 1)
        If letter = "A" Then
            counter += 1
        End If

        pos += 1
    End While

【讨论】:

  • 这只是一个展示如何使用Substring的例子。它应该计算所有大写字母“A”。
猜你喜欢
  • 1970-01-01
  • 2014-01-30
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
相关资源
最近更新 更多