Java 是否可以将数组索引设置为char?

Java 是否可以将数组索引设置为char?,java,arrays,char,Java,Arrays,Char,计数[str1.字符(i)] charAt()返回字符类型。如何将字符类型用作数组中的索引是!这是可能的。 这是java的基本规则。 我们可以将char值赋给int类型的变量。现在,int类型变量将不存储字符,而是存储其ASCII值。参见示例 class Test{ public static void main(String[] args){ int num='a'; System.out.println(num);//97 } } 您可以看到

计数[str1.字符(i)]

charAt()返回字符类型。如何将字符类型用作数组中的索引

是!这是可能的。 这是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 
这里我们有一个例外

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:97 在Test.main(Test.java:4)


程序编译得很好,但我们在运行时遇到异常,因为args现在是空数组。

为什么需要它?我在Geeksforgeks上看到了这一点,我想了解如何将这一可能性char转换为int。A
char
是一种整数类型。是的,这是合法的。charAt()返回ascii值?A
char
值不是ascii值,而是“char值[…]表示基本的多语言平面(BMP)代码点,包括代理代码点或UTF-16编码的代码单位。”——@ErwinBolwidt感谢您的建议。我不是说字符值是ASCII值,但我提到了每个字符值都可以用ASCII值表示,或者每个字符都有自己的ASCII代码。是的,但是我很抱歉,我不应该使用ASCII这个词,因为它不同于C或C++,java支持Unicode字符集。