从VB中的String中删除

时间:2015-02-12 13:34:45

标签: vb.net string replace whitespace

我在Dorpdown中插入了一个选项,如下所示

<option>إختر&nbsp;&nbsp;&nbsp;&nbsp;</option>

当我在任何事件中从服务器端选择此文本时,我得到此值 “إختر”

现在我想替换字符串中的这个空格。我已经尝试过String类的替换方法。但它不起作用。

str = str.replace("&nbsp;","")

Plz建议

4 个答案:

答案 0 :(得分:5)

首先要解决的问题是对HTML进行解码,以便&nbsp;等文本以及&amp;等文本转换为文本对应文件(" ""&")。您可以使用WebUtility.HtmlDecode执行此操作。接下来,您可以使用String.Trim删除前导和尾随空格。

示例:

string s = "إختر&nbsp;&nbsp;&nbsp;&nbsp;";
string r = WebUtility.HtmlDecode(s).Trim();

或VB.NET等价物:

Dim s As String = "إختر&nbsp;&nbsp;&nbsp;&nbsp;"
Dim r As String = WebUtility.HtmlDecode(s).Trim()

显然,您可以尝试自己将&nbsp;转换为空格。但有些例子并不那么明显,你的代码转换器可能会以错误的方式混淆或解码字符串。此外,如果将来W3C的人们改变他们对如何用HTML / XML编码文本的想法,那么你的程序仍然可以工作。

String.Trim将删除所有类型的white-space,包括空格,新行,制表符,回车等。如果您只想删除空格,可以使用:.Trim(' ')。然后,您只需指定删除给定的字符列表(此处仅' ')。

答案 1 :(得分:1)

如果要从字符串中删除前导或尾随空格,只需使用String.Trim,但由于字符串是不可变的,因此必须将返回值重新赋值给变量:

string text = "إختر       ‎";
text = text.Trim();

请注意,在这种情况下您也可以使用TrimEnd

如果您只想删除空格字符(不包括标签或也是空白字符的换行符),请使用:

text = text.Trim(' ');

如果你想要删除字符串中的所有空格,你可以这样做:

text = text.Replace(" ", "");

答案 2 :(得分:0)

我想也许你的代码就是这样的

Dim str As String = "إختر&nbsp;&nbsp;&nbsp;&nbsp;"
str.Replace("&nbsp;", "")

但实际上你应该

Dim str As String = "إختر&nbsp;&nbsp;&nbsp;&nbsp;"
str = str.Replace("&nbsp;", "")

答案 3 :(得分:0)

我刚遇到类似的问题。 事实证明,这个字符是ASCII表中的Chr(160)。因此,对于所有情况,这样的事情是非常有意义的。它适用于选定的区域:

Public Sub remove_space_in_string()

    Dim r_range As Range

    For Each r_range In Selection
        r_range = Trim(r_range)
        r_range = Replace(r_range, vbTab, "")
        r_range = Replace(r_range, " ", "")
        r_range = Replace(r_range, Chr(160), "")
    Next r_range
End Sub