我想寫一個函數來刪除字符串變量中的所有字符,但只保留字母。刪除字符串變量中的所有字符但是字母
例如,如果字符串變量
「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 –