繁体   English   中英

Java中的类型不匹配

[英]Type mismatch in java

我正在尝试将字符值转换为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变量仅存储为数组。

您不能将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]);
    }

当您声明ascii [i]时,您试图初始化一个字符数组,但您却为其分配了ch [i],它是单个字符。 因此,您得到错误:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM