我正在查看来自同事的一些代码,看起来好像他们在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数组有问题?
答案 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”