从输入字符串vb.net中提取字符

时间:2012-11-06 15:07:54

标签: vb.net string character extract

嘿伙计们,我坚持这个问题。请帮忙。

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

示例:

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

alphanumerical characters = hellothisismystringcapetown

special characters = //---@

现在我的问题是:

  1. 如何遍历所有字符?

    (对于x = 0strname.length,我正在使用这样的for循环...这是正确的吗?

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

  3. 如何确定特殊字符?

  4. 非常感谢任何输入 非常感谢你的时间。

2 个答案:

答案 0 :(得分: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, "")

答案 1 :(得分:0)

由于您需要保留值,因此您需要遍历字符串。保留一个字符列表将会派上用场,因为您可以在以后构建一个新字符串。然后利用简单的Regex测试来确定放置的位置。伪代码看起来像这样。

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())

请注意,此代码假设除了a-z之外的任何其他内容都被视为特殊字符,因此如果需要,您可以在else子句中执行第二个正则表达式,以类似方式测试特殊字符。这实际上取决于你对输入的控制程度。