decimalNumber = 16 * decimalNumber + HEX.indexOf(hexNumber.charAt(i)); indexOf требует ведь аргумент типа String, а charAt возвращает char. Строчку взял из правильного решения, сам char переводил в String