Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于StringBuilder indexOf的误导性javadoc评论?_Java_Stringbuilder - Fatal编程技术网

关于StringBuilder indexOf的误导性javadoc评论?

关于StringBuilder indexOf的误导性javadoc评论?,java,stringbuilder,Java,Stringbuilder,我试图理解StringBuilder类方法的javadoc中的以下注释 它说: 返回指定子字符串第一次出现的字符串内的索引,从指定索引开始。返回的整数是最小值k,其中: k >= Math.min(fromIndex, str.length()) && this.toString().startsWith(str, k) 如果不存在这样的k值,则返回-1 现在,我看不到Math.min(fromIndex,str.length(

我试图理解StringBuilder类方法的javadoc中的以下注释

它说:

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

    k >= Math.min(fromIndex, str.length()) &&
                  this.toString().startsWith(str, k)
如果不存在这样的k值,则返回-1

现在,我看不到
Math.min(fromIndex,str.length())
str.length()
的原因,因为它允许在索引
编辑:这是来自Java7Javadoc的评论;java 6的注释是正确的。

否该条件基本上归结为第一个k,使得k至少是索引中的
,并且小于或等于字符串包含所需子字符串的
str.length()


如果
str.length()。它应该是
this.length()
而不是
str.length()

如果
str
为空,则允许
fromIndex
大于
this.length()

例如:

StringBuilder sb = new StringBuilder("Example");
System.out.println(sb.indexOf("", 1234)); //Outputs sb.length(), which is 7.

注意:行为方式相同。

Ok。如果你认为<代码> STR <代码>是引用的StrugBu建器,它是有意义的。但是
str
是参数名和“要搜索的子字符串”。我现在可以理解了,我想这就是注释的问题所在。嗯,看起来defines
String#indexOf(String,int)
与的不同,尽管它在两个版本中的行为相同。Java6文档具有正确的定义。