加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么索引是包容性的,但是索引是独占的?

发布时间:2020-12-15 00:25:32 所属栏目:Java 来源:网络整理
导读:在 Java API方法中,如: String.substring(int beginIndex,int endIndex) String.subSequence(int beginIndex,int endIndex) List.subList(int fromIndex,int toIndex) 为什么开始索引包含但是末尾索引是独占的?为什么他们不应该被设计为包容性的? 解决方
在 Java API方法中,如:

> String.substring(int beginIndex,int endIndex)
> String.subSequence(int beginIndex,int endIndex)
> List.subList(int fromIndex,int toIndex)

为什么开始索引包含但是末尾索引是独占的?为什么他们不应该被设计为包容性的?

解决方法

因为:

> Java是基于C,C是这样做的
>它使代码更清洁:如果要捕获到对象的结尾,则将object.length(但是对象实现此,例如size()等)转换为toIndex参数 – 不需要添加/减去1

例如:

String lastThree = str.substring(str.length() - 3,str.length());

这样,很明显代码中发生了什么(一件好事).

编辑一个像这样的C函数的例子是来自string.h的strncat:

char *strncat(char *dest,const char *src,size_t n);

size_t参数的值对应于java endPosition参数,因为它们都是对象的长度,但是如果它们是索引则从0开始计数,它将是超出对象结束的一个字节.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读