为了账号安全,请及时绑定邮箱和手机立即绑定

为什么“abcd”.StartsWith(“”)返回true?

为什么“abcd”.StartsWith(“”)返回true?

繁星淼淼 2019-08-27 18:01:35
为什么“abcd”.StartsWith(“”)返回true?标题是整个问题。有人能告诉我为什么会这样吗?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

是的 - 因为它确实以空字符串开头。实际上,空字符串逻辑上发生在每对字符之间。

这样说:你可以给出什么样的“以...开头”的定义会排除这种情况?以下是“以...开头”的简单定义:

“如果x的第一个y.Length字符与y 匹配,则x 以y开头。”

另一种(等效的)定义:

“如果是,则以y开头x.Substring(0, y.Length).Equals(y)


查看完整回答
反对 回复 2019-08-27
?
慕容708150

TA贡献1831条经验 获得超4个赞

我将试着详细说明Jon Skeet所说的话。

假设x,y和z是字符串,而+运算符实际上是连接,那么:

如果我们可以将z分割为写z = x + y,这意味着z以x开头。因为每个字符串z都可以拆分为z =“”+ z,所以每个字符串都以“”开头。

所以,因为(“”+“abcd”)==“abcd”,所以“abcd”以“”开头


查看完整回答
反对 回复 2019-08-27
?
米脂

TA贡献1836条经验 获得超3个赞

此方法将value参数与此字符串开头的子字符串进行比较,该字符串与value的长度相同,并返回一个值,指示它们是否相等。要相等,value必须是空字符串(Empty),对此同一实例的引用,或者匹配此实例的开头。

如果参数表示的字符序列是此字符串表示的字符序列的前缀,则返回true;否则返回false。否则是假的。另请注意,如果参数为空字符串或等于此equals(Object)方法确定的String对象,则返回true


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 486 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信