count [str1.charAt(i)]
charAt()返回char类型。 char类型如何用作数组中的索引
答案 0 :(得分:2)
是的!有可能的。 这是Java的基本规则。 我们可以将char值分配给变量的int类型。现在,该int类型变量将不再存储字符,而是其ASCII值。参见示例
class Test{
public static void main(String[] args){
int num='a';
System.out.println(num);//97
}
}
您可以看到我已将'a'分配给int类型的变量。
在相同情况下,每当我们将char作为索引值传递时,总是会传递ASCII值。我们知道,97是a的ASCII值。
因此,如果我们通过传递'a'访问数组,则将在内部调用数组的第97个索引。
int num='a';
System.out.println(args[num]);//AIOOBE
我们在这里遇到了异常
线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:97 在Test.main(Test.java:4)
程序可以很好地编译,但是由于args现在是空数组,因此我们在运行时遇到了异常。