对于字符串说,String str = "abc"
str.indexOf("a")
和str.indexOf("")
都返回0.此行为是否有效?
答案 0 :(得分:9)
如果只有某些地方记录了方法的行为。
返回指定子字符串第一次出现的字符串中的索引。 返回的索引是最小值k,其中:
this.startsWith(str, k)
如果参数表示的字符序列是该字符串表示的字符序列的前缀,则为true;否则为false。否则是假的。另请注意,如果参数为空字符串,则返回 true,或者等于由equals(Object)方法确定的此String对象。
答案 1 :(得分:2)
是。概念上的原因与在数学中加0相似。所以""+"a"+"bc" = "abc" = ""+"a"+"b"+""+"c"
。
答案 2 :(得分:0)
传入空字符串时,String.indexof("")
的返回值为0 或起始索引,因为空字符串""
确实位于此处。
想想" abc"作为""
+ "abc"
。
否则,请参阅此文档:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(int)
indexOf&#34;返回:此对象表示的字符序列中第一次出现的字符的索引,如果没有出现该字符,则返回-1。&#34; < / p>
因此,str.indexOf(&#34; a&#34;)返回0。
答案 3 :(得分:0)
将其视为
"" +"abc"="abc"
基本上
"abc" is ""+"abc"
答案 4 :(得分:0)
实际上,空字符串确实存在于非空的任何字符串中。