substring 返回一个从指定索引号开始一直到结尾的字符串。 你能告诉我为什么以下不是运行时错误吗?
String s = "你好";
s.substring(5);
字符串的长度是 5 但最后一个索引是 4 那么为什么我没有得到范围的异常?当我说 s.substring(6);
请帮忙!
最佳答案
如果您在最后一个索引之上调用索引 1,
s.substring()
实际上不会抛出方法。这非常有用,因为这样您就不必担心这样的 forloops:
for(int i = 0; i < string.length - 1; i++) {
System.out.println(s.substring(i, i+1));
}
不需要对最后一个索引进行特殊检查,它会正常工作。
你可以看到 Java Docs对于更技术性的答案 - s.substring()
只会在索引大于字符串的 LENGTH 时抛出错误,而不仅仅是索引的数量。
参见 this question了解更多信息。
关于java - 为什么这不是运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339873/