在java中输入不匹配

时间:2015-09-29 06:33:25

标签: java arrays

我正在尝试将字符值转换为java中的ASCII值。 以下是我的代码。

public class test {

    public static void main(String[] args) 
    {
        System.out.println("Enter the string to be converted");
        Scanner input = new Scanner(System.in);
        String str =input.nextLine();
        char ch[]=str.toCharArray();//hello
        for(int i =0;i<str.length();i++)
        {
            char ascii[i]=ch[i];
            System.out.println((int)ascii[i]);
        }

        input.close(); 
    }
}

我想从用户那里获取字符串,并将其存储在一个数组中(我在ch[]中执行),对于数组中的每个元素,我想打印其对应的ASCII值。

但是在char ascii[i]=ch[i];行,口译员正在告诉Type mismatch: cannot convert from char to char[]

问题出在哪里?因为我的字符初始化都是数组,那为什么它告诉它的类型不匹配?

注意:我希望ascii变量仅存储为数组。

2 个答案:

答案 0 :(得分:6)

您无法将char分配给char数组。

更改

    for(int i =0;i<str.length();i++)
    {
        char ascii[i]=ch[i];
        System.out.println((int)ascii[i]);
    }

    for(int i =0;i<str.length();i++)
    {
        char ascii = ch[i];
        System.out.println((int)ascii);
    }

编辑:

如果您希望将输出存储在数组中,则应在循环之前声明数组:

    char[] ascii = new char[str.length()];
    for(int i =0;i<str.length();i++)
    {
        ascii[i] = ch[i];
        System.out.println((int)ascii[i]);
    }

答案 1 :(得分:1)

当你声明ascii [i]时,你正在尝试初始化一个字符数组,但你正在为它指定ch [i],这是一个单个字符。因此你得到错误:

Type mismatch: cannot convert from char to char[].

正如Eran上面所说,将ascii变量从char数组更改为character将解决问题。