EVerytime我写了类似于这个的任何代码,我得到了这种类型的错误.它正在构建一个文件但不让它运行,它只是抛出异常.我不熟悉异常,因为我是初学者,请帮助我,并特别指出我正在犯的错误.
public static void main(String args[]) {
String name = "Umer Hassan";
String name1 = "Hassan Umer";
char[] name2 = new char[name.length()];
for (int j = 0; j <= name.length(); j++) {
for (int i = 0; i <= name.length(); i++) {
if (name.length() == name1.length()) {
if (name.charAt(i) == name1.charAt(i)) {
name2[i] = name1.charAt(i);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行该程序时,它显示以下错误:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 11
at java.lang.String.charAt(String.java:658)
at Anagram.main(Anagram.java:24)
Run Code Online (Sandbox Code Playgroud)
您的循环控制变量(i/ j)将上升到 name.length()- 这是一个越界索引(因为字符串/列表的最大索引是len - 1- 记住第一个索引是 0)。
尝试使用i < name.length()andj < name.length()作为循环条件。