我使用一个简单的逻辑来使用for循环来反转字符串,但是我得到了一个超出范围的索引异常,这对我来说没有任何意义
public class ReverseName {
/**
* @param args
*/
public static void main(String[] args) {
String name = "Arnold Schwarzenegger";
for(int i = name.length(); i >=0; i--) {
System.out.print(name.charAt(i));
}
}
}
答案 0 :(得分:8)
在从0
到length() - 1
的Java索引中运行,因此在i
处开始索引length()
是字符串末尾的索引,导致{{1} }。
尝试
IndexOutOfBoundsException
答案 1 :(得分:1)
因为字符串的字符索引从0开始,所以最后一个字符的索引将是name.length()-1
,而不是name.length()
答案 2 :(得分:1)
您应该从name.length() - 1
开始,而不是name.length()
。
答案 3 :(得分:1)
常见索引越界异常情况: -
情形1
char[] matrix = new char[5];
char[5] = ‘\n’;
情形2
for(int i = 0; i <= array.length; ++i) {
情形3
for(int i = 0; i < array.length; ++i) {
Java是一种安全的编程语言,不允许您访问数组的无效索引。 在返回所需对象之前,请执行以下检查。
rangeCheck(index);
private void rangeCheck(int index) {
if (index >= size)
throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}
如何处理异常?
将代码包含在try-catch语句中并相应地避免异常。