Java String IndexOf为空字符串的行为

时间:2015-01-02 01:32:33

标签: java

对于字符串说,String str = "abc" str.indexOf("a")str.indexOf("")都返回0.此行为是否有效?

5 个答案:

答案 0 :(得分:9)

如果只有某些地方记录了方法的行为。

indexOf(string)

  

返回指定子字符串第一次出现的字符串中的索引。   返回的索引是最小值k,其中:

     

this.startsWith(str, k)

startsWith(string)

  

如果参数表示的字符序列是该字符串表示的字符序列的前缀,则为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)

实际上,空字符串确实存在于非空的任何字符串中。