如何执行以下内容
String p = "abcd";
System.out.print(p.substring(4));
不会导致java.lang.IndexOutOfBoundsException
吗?它只是打印一个空字符串。
p.charAt(4) 和以下内容没有任何内容
System.out.print(p.charAt(4));
确实会导致java.lang.IndexOutOfBoundsException
。
最佳答案
因为 charAt
期望索引 4 处有一个字符,但实际上没有。但子字符串不期望如此;如果索引 4 处没有字符,则会得到一个空字符串。如果索引 4 处有一个字符,您将得到一个至少包含一个字符的字符串。
如果你使用.substring(5)
,你会得到越界异常,因为这是假设索引 4 处至少有一个字符; charAt
做出相同的假设。
关于java - 子字符串 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42778401/