其他声明执行

时间:2015-06-10 20:29:30

标签: java

我是JAVA编程的新手,目前通过网站做一些练习代码,我想在下面做一些明确的

下式给出:

String str = "Jason";
str.substring(4,5);

result = "n"

问题: 方法substring参数为(begin_index, end_index)。 但变量str没有5的索引。 当涉及字符串的长度方法时,JAVA会自动为-1吗?

3 个答案:

答案 0 :(得分:6)

substring()方法是"包含排除"。

这意味着在杰森,当你提供(4,5)作为参数时,它包括索引4(n),但不包括索引5.索引5不存在,但它& #39; s独家,所以没关系。

请注意,.length不是零索引。如果你试图获得.length,你将获得一个5.字符串字符位置零索引。因此Jason索引在J上将为0,在N上为4,即使长度为5。

答案 1 :(得分:1)

请参阅substring(int beginIndex, int endIndex)

的API文档
  

参数:

     

beginIndex - 开头索引包含

     

endIndex - 结束索引独占

所以,它的作用是将字符串中的字符从beginIndex开始,但不包括endIndex

这实际上是一种常见的方法。采用包含begin的索引和结束索引的优点是,很容易计算子字符串的长度 - 它是endIndex - beginIndex,并且您不必考虑为包含/排除添加或减去1。

答案 2 :(得分:0)

引用Oracle文档http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring%28int,%20int%29

返回一个新字符串,该字符串是此字符串的子字符串。子字符串从指定的beginIndex开始,并扩展到索引endIndex - 1处的字符。