2016-01-23 1 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 так что вам не нужно сравнивать "а" и "А"

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' , Он должен считать все буквы верхнего регистра «А». – 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

Этот метод не требует 'подстроки', поэтому вы не можете его увидеть –

+0

Вопрос заключается в том, чтобы использовать SubString с помощью специального значения – CodingIsHardForMe