从 VB 中的字符串中删除

remove   from String in VB

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

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

当我 select 在任何事件中从服务器端收到此文本时,我都会得到此值 "إختб "

现在我想替换字符串中的这个白色space。我试过替换字符串 class 的方法。但它不起作用。

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

请提出建议

如果你想从字符串中删除前导或尾随的白色-spaces,你只需要使用String.Trim,但你必须重新分配return值变量,因为字符串是不可变的:

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

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

如果您只想删除 space 个字符(不包括制表符或换行符,它们也是白色的 spaces),请使用:

text = text.Trim(' ');

如果您想从字符串中删除所有 space,您可以这样做:

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

你首先应该做的是解码 HTML,这样 &nbsp;&amp; 之类的文本就会转换为对应的文本(" ""&").您可以通过以下方式执行此操作:WebUtility.HtmlDecode. Next you can use 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包括空格、换行、制表符、回车returns等,如果只想去除空格,可以使用:.Trim(' ')。然后你指定只删除给定的字符列表(这里只有' ')。

我想你的代码可能是这样的

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

但实际上你应该

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

我刚刚遇到了类似的问题。 事实证明,这个 nbsp 字符是来自 ASCII table 的 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