0

嘿伙计们,我被这个问题困住了。请帮忙。

我想编写一个可以从输入字符串中提取字母字符和特殊字符的程序。字母字符是从“a”到“z”的任何字符(不包括大写字母和数字”),特殊字符是任何其他非字母数字字符。

例子:

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

alphanumerical characters = hellothisismystringcapetown

special characters = //---@

现在我的问题是:

  1. 如何循环遍历所有字符?

    (我使用的 for 循环读起来像这样 for x = 0to strname.length)......这是正确的吗?

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

  3. 如何确定特殊字符?

非常感谢任何输入。
非常感谢您的宝贵时间。

4

2 回答 2

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//this-is-my-string@capetown"
Dim rgx As New Regex(pattern)
Dim result As String = rgx.Replace(input, "")
于 2012-11-06T15:13:39.170 回答
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 子句中执行第二个正则表达式,以类似的方式测试您的特殊字符。这实际上取决于您对输入的控制程度。

于 2012-11-06T15:26:26.307 回答