C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Substring: We use the Substring method to eliminate all the punctuation characters we counted. We use the counts as offsets.
Finally: We loop over the string values and display the trimmed version. This helps us check correctness of the method.
VB.NET program that removes punctuation
Module Module1
Sub Main()
Dim values() As String = {"One?", "--two--", "...three!",
"four", "", "five*"}
' Loop over strings and call TrimPunctuation.
For Each value As String In values
Console.WriteLine(TrimPunctuation(value))
Next
End Sub
Function TrimPunctuation(ByVal value As String)
' Count leading punctuation.
Dim removeFromStart As Integer = 0
For i As Integer = 0 To value.Length - 1 Step 1
If Char.IsPunctuation(value(i)) Then
removeFromStart += 1
Else
Exit For
End If
Next
' Count trailing punctuation.
Dim removeFromEnd As Integer = 0
For i As Integer = value.Length - 1 To 0 Step -1
If Char.IsPunctuation(value(i)) Then
removeFromEnd += 1
Else
Exit For
End If
Next
' Remove leading and trailing punctuation.
Return value.Substring(removeFromStart,
value.Length - removeFromEnd - removeFromStart)
End Function
End Module
Output
One
two
three
four
five
However: Using a large array may be inefficient. And you may omit characters that Char.IsPunctuation detects.
CharRegex: Another option is to use the Regex type. This too will often require custom code. It will likely be slower than the example method.
Regex.Match