我想写一个函数来删除字符串变量中的所有字符,但只保留字母。删除字符串变量中的所有字符但是字母
例如,如果字符串变量
“My'na /我* is'S.oph & IA”。
我想显示
“我的名字是索菲亚”
什么是最简单的方法是什么?
我想写一个函数来删除字符串变量中的所有字符,但只保留字母。删除字符串变量中的所有字符但是字母
例如,如果字符串变量
“My'na /我* is'S.oph & IA”。
我想显示
“我的名字是索菲亚”
什么是最简单的方法是什么?
转换的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的回答的回答。
的唯一的问题是删除空格,所以结果是“MynameisSophia”而不是'“我的名字是Sophia”'。 –
@TimSchmelter - 我明白,但原始字符串没有空格,所以我怎么能保留一些不存在的东西? –
好的,还有一步失踪,这并不能代替'''和'*'字符的空白。但是,我认为OP只是提供了一个不好的例子。 –
所以你想用白色空格替换'
和*
,然后删除所有非字母?
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())
看一看这个问题:http://stackoverflow.com/questions/3210393/how-to-remove-all-non-alphanumeric-characters-from-a-string-except-dash –