Java 字符串a=";“x”;;然后字符串x=a。子字符串(1)为';难道没有像IndexOutfrange这样的错误吗?
我很困惑。我想使用str.substring(1),str必须至少有2个字符,否则应该有绑定的索引。但是当我输入时,Java没有给出任何错误。为什么?阅读Javadoc: 字符串java.lang.String.substring(int beginIndex) 返回作为此字符串的子字符串的字符串。子字符串以指定索引处的字符开头,并延伸到此字符串的结尾 抛出: IndexOutOfBoundsException-如果beginIndex为负值或大于此字符串对象的长度 您的Java 字符串a=";“x”;;然后字符串x=a。子字符串(1)为';难道没有像IndexOutfrange这样的错误吗?,java,string,Java,String,我很困惑。我想使用str.substring(1),str必须至少有2个字符,否则应该有绑定的索引。但是当我输入时,Java没有给出任何错误。为什么?阅读Javadoc: 字符串java.lang.String.substring(int beginIndex) 返回作为此字符串的子字符串的字符串。子字符串以指定索引处的字符开头,并延伸到此字符串的结尾 抛出: IndexOutOfBoundsException-如果beginIndex为负值或大于此字符串对象的长度 您的beginIndex等于
beginIndex
等于字符串的长度,因此不会引发异常并返回空的字符串。
为了返回空字符串,索引等于长度是合法的。显示了这种行为的一个很好的例子:“空”。子字符串(9)
返回”
(空字符串),因为空字符串仍然是字符串。给定字符串a=“x”代码>,则子字符串(1)
是“
”。
IndexOutOfBoundsException - if beginIndex is negative or larger than the length of this String object.