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