[英]Extracting characters from an input string vb.net
大家好,我對此問題感到困惑。 請幫忙。
我想編寫一個程序,可以從輸入字符串中提取字母字符和特殊字符。 字母字符是從“ a”到“ z”(不包括大寫字母和數字)的任何字符,特殊字符是非字母數字的任何其他字符。
例:
string = hello//this-is-my-string@capetown
alphanumerical characters = hellothisismystringcapetown
special characters = //---@
現在我的問題是這樣的:
如何遍歷所有字符?
(我正在使用的for循環這樣讀取x = 0
到strname.length
)...這是正確的嗎?
如何將字符提取到字符串?
如何確定特殊字符?
任何輸入,不勝感激。
非常感謝您的寶貴時間。
您可以如下循環遍歷每個字符:
For Each _char As Char In strname
'Code here
Next
要么
For x as integer = 0 to strname.length - 1
'Code here
Next
或者您可以使用Regex替換字符串中不需要的值(我認為這可能會更快,但我不是專家)請看一下: http : //msdn.microsoft.com/zh-cn/library/ xwewhkd1.aspx
編輯
替換代碼看起來如下所示,盡管我不確定正則表達式(當前僅用於替換數字的稱為模式的變量)是什么:
Dim pattern As String = "(\d+)?" 'You need to update the regular expression here
Dim input As String = "123//hello//this-is-my-string@capetown"
Dim rgx As New Regex(pattern)
Dim result As String = rgx.Replace(input, "")
因為你需要不斷的價值觀,你會通過你的字符串要循環。 因此,保留字符列表將很方便,因為以后可以構建一個新的字符串。 然后取一個簡單的正則表達式測試的優勢,確定在何處放置東西。 偽代碼看起來像這樣。
Dim alphaChars As New List(Of String)
Dim specialChars As New List(Of String)
For Each _char As Char in testString
If Regex.IsMatch(_char, "[a-z]")) Then
alphaChars.Add(_char)
Else
specialChars.Add(_char)
End If
Next
然后,如果你需要傾倒你的結果變成一個完整的字符串,你可以簡單地使用
String.Join(String.Empty, alphaChars.ToArray())
請注意,此代碼假設az以外的任何字符都被視為特殊字符,因此如果需要,您可以在else子句中執行第二個正則表達式,以類似的方式測試特殊字符。 這實際上取決於您對輸入有多少控制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.