我是JAVA编程的新手,目前通过网站做一些练习代码,我想在下面做一些明确的
下式给出:
String str = "Jason";
str.substring(4,5);
result = "n"
问题:
方法substring
参数为(begin_index, end_index)
。
但变量str
没有5的索引。
当涉及字符串的长度方法时,JAVA会自动为-1吗?
答案 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)
参数:
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处的字符。