2015-09-29 5 views
1

Я пытаюсь преобразовать значения символов в значения ASCII в java. Ниже мой код.Несоответствие типа в java

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 хранилась только как массив.

ответ

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); 
    } 

EDIT:

Если вы хотите сохранить вывод в массив, вы должны объявить массив перед циклом:

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

Я пробовал, что этим решением элементы не сохраняются в виде массива в переменной ascii, у меня есть более позднее преобразование, которое нужно выполнить на арифметическом ascii, поэтому я не использую строку char ascii = ch [i] ; намеренно – penta

+0

@penta См. edit – Eran

+0

ваше отредактированное решение, соответствующее требованиям. Благодарю. – penta

1

, когда вы заявляете ascii [i], вы пытаетесь инициализировать массив символов, но вы назначаете ему ch [i], который является единственным символом. Следовательно, вы получите ошибку:

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

Как Эран сказано выше, изменение переменной ASCii из массива символов на символ будет решить эту проблему.

Смежные вопросы