黑马程序员技术交流社区

标题: substring(str.length()) 为什么没有越界? [打印本页]

作者: Doit    时间: 2014-10-26 16:26
标题: substring(str.length()) 为什么没有越界?
substring(str.length()) 为什么没有越界?
作者: 香草芭芙    时间: 2014-10-26 16:39
API有写.
  1. substring
  2. public String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
  3. 示例:

  4. "unhappy".substring(2) returns "happy"
  5. "Harbison".substring(3) returns "bison"
  6. "emptiness".substring(9) returns "" (an empty string)   <---关注!!!

  7. 参数:
  8. beginIndex - 起始索引(包括)。
  9. 返回:
  10. 指定的子字符串。
  11. 抛出:
  12. IndexOutOfBoundsException - 如果 beginIndex 为负或大于此 String 对象的长度。
复制代码

作者: 英雄传说ER    时间: 2014-10-26 18:02
本帖最后由 英雄传说ER 于 2014-10-26 18:26 编辑

java里面参数大多是包含头不包含尾的,这句话意思是从str.length()开始,但是不包含str.length()比如 toString(4) 它的意思不是从4角标开始,而是说从第四个元素(3角标)开始,但是不包含第四个元素。

但是平时我们为了更好的推断它从哪里开始 ,可以理解为从4角标开始输出转换,这个只是帮助理解,而不是真正的操作方式

作者: wzg1015    时间: 2014-10-26 18:54
我也是是才发现。一般以索引为范围的都包含头不包含尾,我认为主要是为了便于比较和计算长度。比如  4-8,第一眼看上去长度为4,如果需要考虑尾部长度需要加1。反正以前学迭代器的时候看到过,长期不用就又忘记规律了。
还有一种参数就简单了,前一个为索引,后一个为长度。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2