Может кто-нибудь сказать мне, почему этот бит коды твердит мне Числовой формат Exception и не печатает мое сообщение об ошибке, когда я пытаюсь преобразовать из двоичного числа в десятичное `Как правильно проверить, является ли вход только двоичным номером?
public static void readAndConvertBinaryValue()
{
Scanner kbd = new Scanner(System.in);
boolean valid = false;
do
{
System.out.print("\nEnter a binary value containing up to 16"
+ " digits: ");
bAction = kbd.nextLine();
int result = bAction.compareTo(BINARY_NUM);
if (result > 1 || result < -9 || bAction.length() > 16)
{
System.out.print("Error: Invalid binary value."
+ "\nTry again.\nPress Enter to continue ...");
kbd.nextLine();
} else
{
char value;
int charlim = 0;
value = bAction.charAt(charlim);
if (value == '1' || value == '0')
{
binary = Integer.parseInt(bAction, 2);
valid = true;
} else
{
System.out.print("Error: Invalid binary value."
+ "\nTrya again.\nPress Enter to continue ...");
kbd.nextLine();
}
}
} while (!valid);
}
где код? – Johan
Предлагаю вам проверить все цифры, а не только первую. Я также предлагаю вам проверить, что меньше 33, или это также даст вам исключение NumberFormatException. Простой подход - это не проверка, а вместо этого - исключение NumebrFormatException, если оно происходит. –
Я только что добавил код – midknight