为什么这段代码没有在Java中引发错误?

时间:2015-03-27 00:01:26

标签: java substring

String s = "Hola";
System.out.println(s.substring(4));

4超出范围,但没有抛出任何错误。

为什么?

提前致谢。

2 个答案:

答案 0 :(得分:5)

String.substring()的参数视为跳过的字符数。因此,在"Hola"中跳过4个字符会产生空字符串。

"Hola".substring(0) => "Hola"
"Hola".substring(1) => "ola"
"Hola".substring(2) => "la"
"Hola".substring(3) => "a"
"Hola".substring(4) => ""

在4个字符的字符串上抛出异常的最低参数是5.

答案 1 :(得分:0)

字符串索引从0开始,而不是1。 例如,在字符串“Hola”中,

索引0将是H

索引1将是o

索引2将是l

索引3将是

请注意,没有索引4.这就是您收到错误的原因。 相反,将其更改为

System.out.println(s.substring(3));