这不是规则的例外,而是方法
indexOf和
startsWith定义的自然结果。
您声称
"test".indexOf("")应该返回-1。这基本上等于
"test".startsWith("")应返回的索赔false。为什么是这样?尽管此情况在文档中特别提到了returning
true,但这并不是一个任意决定。
"test".startsWith("te")例如,您将如何决定?最简单的方法是使用递归。由于两个字符串都以character开头,因此't'您将调用
"est".startsWith("e")并返回结果。同样,您将调用"st".startsWith("")并返回结果。但是您已经知道答案应该是true,所以这就是每个字符串都以开头的原因
""。



