2012-11-06 79 views
0

嘿傢伙我堅持這個問題。請幫忙。從輸入字符串中提取字符vb.net

我想寫一個程序,可以從輸入字符串中提取字母字符和特殊字符。字母字符是任意字符從「A」到「Z」(大寫字母和數字不包括「)的特殊字符是任何其它字符不是字母數字

例:

string = hello//[email protected] 

alphanumerical characters = hellothisismystringcapetown 

special characters = //[email protected] 

現在我的問題是這樣的:

  1. 我如何遍歷所有字符

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

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

  3. 如何確定特殊字符?

任何輸入是非常讚賞。
非常感謝您的時間。

回答

0

您可以通過每個字符循環如下:

For Each _char As Char In strname 
    'Code here 
Next 

For x as integer = 0 to strname.length - 1 
    'Code here 
Next 

,或者您可以使用正則表達式來替換你不要在你的字符串所需要的值(我認爲這可能是更快但我不是專家)看看:http://msdn.microsoft.com/en-us/library/xwewhkd1.aspx

編輯

更換代碼看起來如下雖然我不能肯定什麼正則表達式(稱爲模式目前僅更換數字變量)將是:

Dim pattern As String = "(\d+)?" 'You need to update the regular expression here 
Dim input As String = "123//hello//[email protected]" 
Dim rgx As New Regex(pattern) 
Dim result As String = rgx.Replace(input, "") 
0

因爲你需要不斷的值,你」我想循環你的字符串。因此,保留一個字符列表將會派上用場,因爲您稍後可以創建一個新字符串。然後利用簡單的正則表達式測試來確定在哪裏放置東西。僞代碼看起來像這樣。

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子句中做第二個正則表達式來以類似的方式測試你的特殊字符。這實際上取決於您對輸入的控制程度。

+0

我認爲他想要的不是添加A-Z,0-9作爲specialChars,所以他需要額外的else如果什麼都不做 – Beth