Как я могу сказать "return true, если строка является допустимой шестнадцатеричной строкой, false в противном случае" в java
Я пытался создать простой шестнадцатеричный десятичный конвертер для старого задания, и независимо от того, сколько я путешествую по интернету и читаю учебник, я не могу понять это задание за всю свою жизнь.
Вот данный код:
/*************************************************** Name: Date: Homework #7 Program name: HexConversion Program description: Accepts hexadecimal numbers as input and converts each number to binary and to the decimal equivalent. Valid input examples: F00D, 000a, 1010, FFFF, Goodbye, GOODBYE Enter GOODBYE (case insensitive) to exit the program. ****************************************************/ package hw8; import java.util.Scanner; public class HexConversion { public static void main(String[] args) { // Maximum length of input string final byte INPUT_LENGTH = 4; String userInput = ""; // Initialize to null string Scanner input = new Scanner(System.in); // Process the inputs until GOODBYE is entered do { // Input a 4 digit hex number System.out.print("\nEnter a hexadecimal string, or enter GOODBYE to quit: "); userInput = input.next().toUpperCase(); // Process the input switch (userInput) { case "GOODBYE": break; default: if (isValidHex(userInput, INPUT_LENGTH)) { // The input is a valid hexadecimal string // Convert the hexadecimal string to binary and print the binary number as a string String binVal = hex2Bin(userInput, INPUT_LENGTH); // Convert the hexadecimal string to decimal and print the decimal number long decVal = hex2Dec(userInput, INPUT_LENGTH); System.out.printf(" 0x%s = %s in binary = %d in decimal (unsigned).\n", userInput, binVal, decVal); } else { // String is either the wrong length or is not a valid hexadecimal string System.out.printf(" The string %s is not a valid input.\n", userInput); } break; } } while (!userInput.equals("GOODBYE")); // Exit the program System.out.println("\nGoodbye!"); input.close(); } // Method to validate the input public static boolean isValidHex(String userIn, byte inputLen) { boolean isValid = false; // If length of the input string is equal to inputLen, continue with validation, // otherwise return false if (userIn.TBD == inputLen) { // The length is correct, now check that the characters are legal hexadecimal digits for (int i = 0; i < TBD; i++) { char thisChar = userIn.TBD; // Is the character a decimal digit (0..9)? If so, advance to the next character if (Character.isDigit(thisChar)) { isValid = true; } else { // Character is not a decimal digit (0..9), is it a valid hexadecimal digit (A..F)? TBD } } } // Return true if the string is a valid hexadecimal string, false otherwise TBD } // Method to convert the hex number to a binary string public static String hex2Bin(String hexString, byte inputLen) { String binString = ""; // Initialize binString to null string // Convert each hexadecimal digit to its binary equivalent for (int i = 0; i < TBD; i++) { char thisChar = hexString.TBD; // Convert hexString to a binary string, e.g. F00D = 1111000000001101 TBD } } // Method to convert the hex number to decimal number public static long hex2Dec(String hexString, byte inputLen) { // Convert hexadecimal string to decimal, e.g. F00D = 61453 in unsigned decimal TBD } }
Что я уже пробовал:
Я пытался преобразовать образцы в учебнике в это задание, но я его не понимаю. Я очень отчаялся и должен закончить эти задания как часть неполного с прошлого семестра. Пожалуйста, помогите мне, заполните и объясните разделы ТБД? Спасибо
Richard MacCutchan
Вы не "преобразуете шестнадцатеричный код в двоичный" или что-то еще. Просто считайте шестнадцатеричные цифры и преобразуйте их в допустимое целое число. Только когда вы распечатываете их, они нужны вам в двоичном, десятичном или любом другом формате.