簡體   English   中英

從輸入字符串vb.net中提取字符

[英]Extracting characters from an input string vb.net

大家好,我對此問題感到困惑。 請幫忙。

我想編寫一個程序,可以從輸入字符串中提取字母字符和特殊字符。 字母字符是從“ a”到“ z”(不包括大寫字母和數字)的任何字符,特殊字符是非字母數字的任何其他字符。

例:

string = hello//this-is-my-string@capetown

alphanumerical characters = hellothisismystringcapetown

special characters = //---@

現在我的問題是這樣的:

  1. 如何遍歷所有字符?

    (我正在使用的for循環這樣讀取x = 0strname.length )...這是正確的嗎?

  2. 如何將字符提取到字符串?

  3. 如何確定特殊字符?

任何輸入,不勝感激。
非常感謝您的寶貴時間。

您可以如下循環遍歷每個字符:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM