【发布时间】:2014-01-01 09:55:12
【问题描述】:
有些东西对我来说不太有意义。为什么会这样:
public static int[] countNumbers(String n){
int[] counts = new int[10];
for (int i = 0; i < n.length(); i++){
if (Character.isDigit(n.charAt(i)))
counts[n.charAt(i)]++;
}
return counts;
}
此时出现 ArrayOutOfBounds 错误:
public static int[] countNumbers(String n){
int[] counts = new int[10];
for (int i = 0; i < n.length(); i++){
if (Character.isDigit(n.charAt(i)))
counts[n.charAt(i) - '0']++;
}
return counts;
}
没有?这两个示例之间的唯一区别是在第二个示例中计数的索引被减去零。如果我没记错的话,第一个示例不应该正确显示,因为正在检查相同的值吗?
以下是为这两种方法传递的值:
System.out.print("Enter a string: ");
String phone = input.nextLine();
//Array that invokes the count letter method
int[] letters = countLetters(phone.toLowerCase());
//Array that invokes the count number method
int[] numbers = countNumbers(phone);
【问题讨论】:
标签: java arrays runtime-error indexoutofboundsexception