当前位置: 首页 > 面试题库 >

String类中的子字符串方法到达了它不应该索引的索引

栾耀
2023-03-14
问题内容

如果标题不清楚,我深表歉意。

现在,在字符串中,索引从0开始。因此,例如:

Index    0   1   2   3   4
String   H   E   L   L   O

在这种情况下,最后一个索引是4。

如果我想做这样的事情:

System.out.println("hello".charAt(5));

它将抛出“超出范围的索引异常”,这是应该的。

但是,如果我尝试运行以下代码:

System.out.println("hello".substring(5));

它运行!我编写了类似的代码,后来注意到了这一点,无法解决。

最终,问题是我们怎么可能不应该达到这个指标呢?它使我们可以编写:

stringObj.substring(stringObj.length());

而且它看起来不是很安全,因为stringObj.length()向我们返回一个比最后一个索引大一个整数的整数。

它是故意制作的,是否有目的?如果是的话,这个目的是什么?它带来的好处是什么?


问题答案:

substring当您想到这样的索引时,使用起来会更容易(例如,字母 位于 索引 之间

         H E L L O
        0 1 2 3 4 5    <- acceptable range of indexes for "HELLO"
        ^         ^
        |         |
      start      end = length
   (min index) (max index)

当您从start到子字符串时,end您只能在这些索引之间获得字符。

因此,在"HELLO".substring(2,4)您参与的情况下

 L L 
2 3 4

返回"LL"

现在,在这种情况下,substring(5)它的作用与substring(5,length)在此情况下的意思相同substring(5,5)。如此以来,5指数
存在 于我们的“模式”为可接受值,并且因为有之间没有字符55我们越来越空字符串作为结果。

substring(0,0) substring(1,1)只要我们的模型可以接受索引,就发生类似情况。

StringIndexOutOfBoundsException 仅当我们尝试访问不可接受的索引时才会发生,这意味着:

  • 消极的:-1-2,…
  • 大于length。在这里:6 7,…


 类似资料:
  • 问题内容: 我曾经在JavaScript中这样做: Swift没有此功能,如何做类似的事情? 问题答案: 编辑/更新: Xcode 11•Swift 5.1或更高版本 用法: 不区分大小写的样本 正则表达式样本

  • 问题内容: 我刚刚发现,根据我们执行最多的查询,当前的数据库设计效率有些低下。IBAN是根据国家/地区特定格式的位置坐标。 由于我们主要在某些表中的IBAN列的精确子字符串上执行s和s,因此我的问题是将索引分配给列的子字符串 我们是否被迫向表中添加冗余和索引列?IE。添加列,,,,,(其中IT_字段只考虑在开始ITXX帐户)每一个与适当的二级索引 或 是否有任何特殊的二级索引的,可以仅在一列的子串

  • 问题内容: 我有: 功能: 和一个字符串:, 我本质上是想输入并返回,但是我却不断地返回。 码: 不知道怎么了! 问题答案: 理想情况下,您会 像痴呆的刺猬说的那样 使用 str.find 或 str.index 。但是你说你不能… 您的问题是您的代码仅搜索搜索字符串的第一个字符(第一个字符在索引2)。 您基本上是说if是in ,递增直到我测试它返回3时,但这仍然是错误的。这是一种方法。 它产生了

  • 我在这里检查了许多类似的问题,这些问题的答案对我来说似乎不是一个有效的解决方案。我正在将格式化的文件读入字符串。我需要找到的索引来打印其内容(),稍后在代码中我需要打印()的内容等等。 到目前为止,我已经尝试过: <代码>字符串。索引(子串)-Xcode错误: 无法将“String”类型的值转换为预期的参数类型“Character” <代码>字符串。firstIndex(共:子串)-Xcode错误

  • 背景我有一个小索引与一些字符串字段(例如名称,街道,城市,电子邮件)。 和类似于 Lorem ipsum dolor sit amet,consectetuer adipiscing Elit。埃尼·康茂多·利古拉·埃盖特·多洛。埃尼安·马萨。同时也是一个社会成员,即natoque penatibus et magnis dis matraft montes,nascetur loomus mus

  • 问题内容: 我想在给定的输入string中找到某个子字符串最后一次出现的位置(或索引)。 例如,假设输入字符串为,子字符串为,则应输出3。 我怎样才能做到这一点? 问题答案: 用途: 另外,请勿将其用作变量名,否则将使内置的阴影变暗。