java - 子字符串 IndexOutOfBoundsException

标签 java string

如何执行以下内容

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/

相关文章:

c - 字符串检查 c pangramm 中带有制表符的字母

java - 在 Map 中存储和比较树节点

java - java connectionpooled.close() 是否会关闭数据库 session

java - 如何使用 Java 在 JPanel 中显示 JTable?

javascript - 凯撒密码 - 空格和其他字符

java - 从字符串中提取每个单词并比较频率

javascript - 如何判断字母是否在字符串中-javascript

java - 查询无法正常工作

java - 如何在执行jar文件时打开cmd(qt QProcess)

regex - 如何使用正则表达式取消标点符号、小写字母、取消空格和连字符?