当前位置: 首页 > 知识库问答 >
问题:

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

施鸿
2023-03-14

我试图理解StringBuilder类的indexOf(String str, int fromIndex)方法的javadoc中的以下注释。

它说:

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

    k >= Math.min(fromIndex, str.length()) &&
                  this.toString().startsWith(str, k)

如果不存在这样的k值,则返回-1。

现在,我看不出在数学中使用str.length()的原因。min(fromIndex,str.length()),因为它允许在索引上找到字符串

编辑:如下所示,这是来自Java7 javadoc的评论;java 6有正确的评论。

共有2个答案

东方文林
2023-03-14

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

如果str.length

邹高懿
2023-03-14

这是一个错误。应该是这样的。length()而不是str.length()。

这允许fromIndexstr为空的情况下大于this.length()

例子:

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

注意:String#indexOf(String,int)的行为方式相同。

 类似资料:
  • 在我的maven pom中,我还定义了javadoc插件,如下所示: 现在我在运行过程中得到了一些奇怪的输出 [信息]生成“Javadoc”报告--maven-javadoc-plugin:3.1.0:aggregate-no-fork[ERROR]错误提取链接:d:\work\eclipse\java\fritzbox\phplib\target\javadoc-bundle-options。忽

  • “导出向导”让你从表、集合、视图或查询结果导出数据到任何可用的格式。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导出向导窗口,请在对象工具栏点击“导出向导”。 【注意】Navicat Essentials 版只支持导出纯文本格式的文件,例如 TXT、CSV、HTML、XML、SQL 和 JSON。

  • “导入向导”让你从 CSV、TXT、XML、DBF 等格式导入数据到表或集合。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导入向导窗口,请在对象工具栏点击 “导入向导”。 【注意】Navicat Essentials 版只支持导入纯文本格式的文件,例如 TXT、CSV、XML 和 JSON。 【提示】你可以拖拉一个支持格式的文件到表或集合的对象选项卡,或到导航窗格中的

  • “导出向导”让你从表、集合、视图或查询结果导出数据到任何可用的格式。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导出向导窗口,请在对象工具栏点击 、 或 。 【注意】Navicat Essentials 版只支持导出纯文本格式的文件,例如 TXT、CSV、HTML、XML、SQL 和 JSON。

  • “导入向导”让你从 CSV、TXT、XML、DBF 等格式导入数据到表或集合。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导入向导窗口,请在对象工具栏点击 。 【注意】Navicat Essentials 版只支持导入纯文本格式的文件,例如 TXT、CSV、XML 和 JSON。 【提示】你可以拖拉一个支持格式的文件到表或集合的对象选项卡,或到导航窗格中的一个数据库或

  • “导出向导”让你从表、集合、视图或查询结果导出数据到任何可用的格式。你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开导出向导窗口,请在对象工具栏点击“导出向导”。 【注意】Navicat Essentials 版只支持导出纯文本格式的文件,例如 TXT、CSV、HTML、XML、SQL 和 JSON。