Не могу сконвертировать массив int в char
Все бы ничего, но при выводе появляется [I@1d56ce6a .Редактировал вывод по разному, не выходит. Подскажите, как ошибся. С точностью знаю, что ошибка находится здесь char[] chars =("" + array).toCharArray();. Но как решить, не приходит в голову
Scanner input = new Scanner(System.in); // Объявляем Scanner
System.out.println("Enter array length: ");
int size = input.nextInt(); // Читаем с клавиатуры размер массива и записываем в size
int array[] = new int[size]; // Создаём массив int размером в size
System.out.println("Insert array elements:");
int counter = 0;
char[] chars =("" + array).toCharArray();
/*Пройдёмся по всему массиву, заполняя его*/
for (int i = 0; i < size; i++) {
array[i] = input.nextInt(); // Заполняем массив элементами, введёнными с клавиатуры
if(array[i] == 00){
break;
}
}
for (int i = 0; i < chars.length; i ++){
if (chars[i]=='1'){
counter +=1;
}
}
System.out.println(Arrays.toString(chars));
input.close();
return 0;
}
public static void main(String[] args) {
function();
}
Ответы (1 шт):
Автор решения: Ziens
→ Ссылка
Scanner input = new Scanner(System.in); // Объявляем Scanner
System.out.println("Enter array length: ");
int size = input.nextInt(); // Читаем с клавиатуры размер массива и записываем в size
int array[] = new int[size]; // Создаём массив int размером в size
System.out.println("Insert array elements:");
int counter = 0;
// Сперва инициализируем массив
char[] chars = new char[size];
/*Пройдёмся по всему массиву, заполняя его*/
for (int i = 0; i < size; i++) {
array[i] = input.nextInt(); // Заполняем массив элементами, введёнными с клавиатуры
if(array[i] == 00){
break;
}
// Преобразуем int в char
chars[i] = (char)array[i];
// Или может быть вы имели в виду такое преобразование? :
chars[i] = String.valueOf(i).charAt(0);
// Или так
chars[i] = ("" + i).toCharArray()[0];
}
for (int i = 0; i < chars.length; i ++){
if (chars[i]=='1'){
counter +=1;
}
}
System.out.println(Arrays.toString(chars));
input.close();
return 0;
}
public static void main(String[] args) {
function();
}
Или если Вы хотите посчитать количество единиц:
Scanner input = new Scanner(System.in); // Объявляем Scanner
System.out.println("Enter array length: ");
int size = input.nextInt(); // Читаем с клавиатуры размер массива и записываем в size
int array[] = new int[size]; // Создаём массив int размером в size
System.out.println("Insert array elements:");
int counter = 0;
StringBuffer buffer = new StringBuffer();
/*Пройдёмся по всему массиву, заполняя его*/
for (int i = 0; i < size; i++) {
array[i] = input.nextInt(); // Заполняем массив элементами, введёнными с клавиатуры
if(array[i] == 00){
break;
}
buffer.append(array[i]);
}
char[] chars = buffer.toString().toCharArray();
for (int i = 0; i < chars.length; i ++){
if (chars[i]=='1'){
counter +=1;
}
}
System.out.println(Arrays.toString(chars));
input.close();
return 0;