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

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

标题是整个问题。有人能告诉我为什么会这样吗?



繁星淼淼
浏览 490回答 3
3回答

紫衣仙女

是的 - 因为它确实以空字符串开头。实际上,空字符串逻辑上发生在每对字符之间。这样说:你可以给出什么样的“以...开头”的定义会排除这种情况?以下是“以...开头”的简单定义:“如果x的第一个y.Length字符与y 匹配,则x 以y开头。”另一种(等效的)定义:“如果是,则以y开头x.Substring(0, y.Length).Equals(y)”

慕容708150

我将试着详细说明Jon Skeet所说的话。假设x,y和z是字符串,而+运算符实际上是连接,那么:如果我们可以将z分割为写z = x + y,这意味着z以x开头。因为每个字符串z都可以拆分为z =“”+ z,所以每个字符串都以“”开头。所以,因为(“”+“abcd”)==“abcd”,所以“abcd”以“”开头

米脂

此方法将value参数与此字符串开头的子字符串进行比较,该字符串与value的长度相同,并返回一个值,指示它们是否相等。要相等,value必须是空字符串(Empty),对此同一实例的引用,或者匹配此实例的开头。如果参数表示的字符序列是此字符串表示的字符序列的前缀,则返回true;否则返回false。否则是假的。另请注意,如果参数为空字符串或等于此equals(Object)方法确定的String对象,则返回true。
打开App,查看更多内容
随时随地看视频慕课网APP