Java indexOf("") returns 0

Java indexOf("") returns 0

有人可以通过返回否定结果来帮助解释 indexOf("") returns 0 是否与 -1 相同的预定义吗?

谢谢,祝大家复活节快乐!

ps。以下 link 很有帮助,但没有包含我问题的确切答案

public class ExIndexOf {

    public static void main(String[] args) {

        String s = "We learn Java.";

        System.out.println(s.indexOf("ava"));  // -> 10
        System.out.println(s.indexOf("java")); // -1
        System.out.println(s.indexOf(" ")); // -> 2
        System.out.println(s.indexOf("")); // -> 0
    }
}

因为indexOf return是其参数在字符串中的第一个位置(索引)。 Java 中的字符串,如数组和集合,都是从零开始索引的,这意味着索引 0 描述了第一项。索引 1 是第二项,索引 n 描述了第 n+1 项。许多函数 return(无效)索引 -1(“神奇”值)表示“未找到”或“错误”。

每个字符串多次出现空字符串。可以找到的 first 位置在位置 0。将其视为:String s = "" + "We learn Java."(或更详细:s = "" + "W" + "" + "e" + "" + " " + "" + "l" + …)。

String s = "We learn Java.";

System.out.println(s.indexOf(""));  // -> 0
System.out.println(s.indexOf("W")); // 0
System.out.println(s.indexOf("e")); // -> 1
System.out.println(s.indexOf(" ")); // -> 2
System.out.println(s.indexOf("not found")); // -> -1