String.Replace使用多个值

时间:2016-03-15 20:13:17

标签: .net vb.net string replace

我正在查看来自同事的一些代码,看起来好像他们在String.Replace中使用了Char数组:

txtPAPTransit.Text = g_aAllBranches(instApplication.branchForCumisReporting.ToLower).transit.ToString.Replace({" "c, "-"c}, "").Substring(3)

这不会从文本框中的字符串中删除“ - ”(字符串为123-45678)。当我尝试将Substring设为4而不是3时,它可以工作。这让我感到非常奇怪,为什么在这种情况下,当索引为0时,它的行为会如此?

当我像这样编写替换时,它可以正常工作:

txtPAPTransit.Text = g_aAllBranches(instApplication.branchForCumisReporting.ToLower).transit.ToString.Replace("-"c, "").Substring(3)

之后字符串显示为45678,这是正确的结果。

为什么在我用上面提到的用4替换子串的情况下呢?为什么char数组有问题?

1 个答案:

答案 0 :(得分:3)

<a href="<%= ResolveUrl("~/") %>" > <img src="<%= ResolveUrl("image url...") %>" alt="Home"> </a> 使用不正确 - 或者您的同事对它的理解是有缺陷的。 2个重载是:

Replace

因此,- String.Replace(Char, Char) - String.Replace(String, String) 不会用Replace({" "c, "-"c}, "")替换任何空格和任何短划线。相反,由于char数组 是一个字符串,它将替换为{123}中的String.Empty(空格+破折号)。

替换其中任何一种的正确方法是:

" -"
  

“123ABCDEFG”