我有一个字符串变量如下:
string testVar = "abc ";
然后我有if
声明如下:
if(this.testVar[this.testVar.Length-1].Equals(" "))
从上面我试图找出最后一个字符是否是空格,如果它是空格然后做一些事情。但即使我的testVar = "abc "
?
答案 0 :(得分:9)
testVar[…]
会返回 char
,而不是string
。这就是Equals
string
测试始终返回false
的原因。您可以通过与char
进行比较来轻松解决此问题。你也不需要Equals
:
if (testVar[testVar.Length - 1] == ' ')
如果您最初使用==
而不是Equals
,那么您将得到一个解释问题的编译时错误,这一点毫无价值。这很好地说明了为什么使用早期绑定而不是后期绑定是好的(Equals
需要object
,因此不提供编译时类型检查。)
答案 1 :(得分:4)
为什么你不只是使用:
if (testVar.EndsWith (" "))
答案 2 :(得分:1)
始终为假,因为char
永远不会等于string
。
这样可行:
if (this.testVar[this.testVar.Length-1].Equals(' '))
或者
if (this.testVar[this.testVar.Length-1] == ' ')
答案 3 :(得分:0)
检查这个家伙
var result = str.Substring(str.LastIndexOf(' ') + 1);