代码:
public class Test {
public static void main(String[] args) {
String str = "University";
System.out.println(str.substring(4, 7));
}
}
输出: ers
我真的不理解substring方法是如何工作的。索引是从0开始的吗?如果我从0开始,e
位于索引4,而char i
位于7,因此输出将为ersi
。
发布于 2010-12-31 20:20:56
发布于 2010-12-31 20:19:03
两者都是从0开始的,但是开始是包含的,结束是排他的。这确保了结果字符串的长度为start - end
。
为了使substring
操作变得更容易,假设索引之间有字符。
0 1 2 3 4 5 6 7 8 9 10 <- available indexes for substring
u n i v E R S i t y
↑ ↑
start end --> range of "E R S"
引用docs
子字符串从指定的
beginIndex
开始,延伸到索引endIndex - 1
处的字符。因此,子字符串的长度为endIndex-beginIndex
。
发布于 2010-12-31 20:18:19
参见the javadoc。它是第一个参数的包含索引,第二个参数是独占索引。
https://stackoverflow.com/questions/4570037
复制相似问题