2016-01-23 93 views
0

我在教自己的VB.net,我試圖完成挑戰。使用SubString計算字符串中的特定字符

我被困在這個挑戰。

我想弄清楚如何去使用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

看起來更像作業; 0) –

回答

2

在這裏,我也納入.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 
+0

非常感謝!我只是修復了一些你的代碼,因爲它原本不工作 – CodingIsHardForMe

+1

我不得不使它成爲'Textbox1.Text.Length - 1' – CodingIsHardForMe

+1

感謝您指出它。 :D我已經編輯了我的答案。 –

0

嘗試是這樣的:

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 
+0

不計算正確的量 – CodingIsHardForMe

+0

這僅僅是示出了如何使用'Substring'一個例子。它應該計算所有大寫字母「A」。 – Serge

1

無使用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 
+0

我在這裏的任何地方都看不到SubString。 – CodingIsHardForMe

+0

這種方法不需要'substring'這就是爲什麼你不能看到它 –

+0

這個問題陳述要特別使用SubString – CodingIsHardForMe