James Stafford
James Stafford

Reputation: 1054

Count number of characters after specific character in textbox

using winforms / vb.net

I am trying to count how many characters exist in "textbox3" after a specific character "." in a textbox.

examples:

2adf = 0 (no "." exists)

2adf. = 0

2adf.2 = 1

2adf.2a = 2

2adf.2af = 3

2adf.2afe = 4

I already have a function to search if there is a "."

if (CountCharacter(TextBox3.Text, ".") = 1) then
    'a "." exists so count number of characters after "."

end if

Public Function CountCharacter(ByVal value As String, ByVal ch As Char) As Integer
    Dim cnt As Integer = 0
    For Each c As Char In value
        If c = ch Then cnt += 1
    Next
    Return cnt
End Function

I am not sure how to check the count after the "." though

Upvotes: 1

Views: 1945

Answers (3)

Suji
Suji

Reputation: 1326

dim n,cnt as integer
n=0
cnt=0
   Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If e.KeyChar = Chr(46) Then
                n = Len(TextBox1.Text)
            End If
            If n <> 0 Then
                cnt += 1
            End If
            MsgBox(" no.of charectors after '.' is/are : " & cnt - 1)
        End Sub

Upvotes: 0

Ngamba
Ngamba

Reputation: 15

Try this

    Dim NoChar As Integer = CalculateChra("12adf.2afe", ".")

Private Function CalculateChra(ByVal V_String As String, ByVal LastChar As Char) As Integer

    Dim Start As String = Split(V_String, LastChar)(0) & "."
    Dim M As String = V_String.Substring(Start.Length)
    Return M.Length
End Function

Upvotes: 0

Steve
Steve

Reputation: 216313

You could use the string.IndexOf method for this task

Sub Main
    Dim test = "2adf.2afe"
    Dim result = CountCharsAfter(test, "."c)
    Console.WriteLine(result)
End Sub

Public Function CountCharsAfter(input as string, charToSearch as Char) as Integer
    DIm pos = input.LastIndexOf(charToSearch)
    if pos = -1 then
       return 0
    else
        return input.Length - (pos + 1)
    End if
End Function

Upvotes: 3

Related Questions