2013-09-23 43 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()) 
相關問題