Не могу сконвертировать массив 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;
→ Ссылка