2013-09-23 41 views
0

我想写一个函数来删除字符串变量中的所有字符,但只保留字母。删除字符串变量中的所有字符但是字母

例如,如果字符串变量

“My'na /我* is'S.oph & IA”。

我想显示

“我的名字是索菲亚”

什么是最简单的方法是什么?

+2

看一看这个问题:http://stackoverflow.com/questions/3210393/how-to-remove-all-non-alphanumeric-characters-from-a-string-except-dash –

回答

2

转换的String到一个字符数组,像这样:

Dim theCharacterArray As Char() = YourString.ToCharArray() 

现在循环并只保留字母,比如:

theCharacterArray = Array.FindAll(Of Char)(theCharacterArray, (Function(c) (Char.IsLetter(c)))) 

最后,转换角色回String ,像这样

YourString = New String(theCharacterArray) 

注意:这个答案是一个VB.NET的a对How to remove all non alphanumeric characters from a string except dash的回答的回答。

+1

的唯一的问题是删除空格,所以结果是“MynameisSophia”而不是'“我的名字是Sophia”'。 –

+0

@TimSchmelter - 我明白,但原始字符串没有空格,所以我怎么能保留一些不存在的东西? –

+0

好的,还有一步失踪,这并不能代替'''和'*'字符的空白。但是,我认为OP只是提供了一个不好的例子。 –

1

所以你想用白色空格替换'*,然后删除所有非字母?

Dim lettersOnly = From c In "My'na/me*is'S.oph&ia.". 
        Replace("'"c, " "c).Replace("*"c, " "c) 
        Where Char.IsWhiteSpace(c) OrElse Char.IsLetter(c) 
Dim result As New String(lettersOnly.ToArray()) 
相关问题