Подсказки : Подумайте о том, что происходит, когда вы получаете символьное представление, которое меньше семи символов.
В частности, подумайте о том, как строчные массивы char[]
и boolean[]
"вверх ";в одном элементе будет больше, чем в другом, поэтому как должны совпадать индексы?
Фактический ответ : В данный момент вы используете первый элемент массива символовв качестве первого элемента логического массива, который является правильным только при использовании строки из семи символов.Фактически, вы хотите, чтобы элементы last массивов совпадали (чтобы нули были заполнены спереди, а не в конце).
Одним из способов решения этой проблемы было быпоиграйтесь с индексами внутри цикла (например, определите разницу в размере и измените binaryarray[i + offset]
).Но еще более простое решение - просто добавить строку с нулями после первой строки, чтобы обеспечить ровно семь символов, прежде чем преобразовать ее в массив символов.
(Дополнительные отметки: что вы делаете, когда есть большечем 7 символов в массиве, например, если кто-то передает 200
в качестве аргумента? Основываясь на обоих вышеупомянутых решениях, вы сможете легко обнаружить этот случай и обработать его конкретно.)