Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.Scanner;
- public class Main {
- public static String inputLine() {
- Scanner scan = new Scanner(System.in);
- boolean isIncorrect;
- String line;
- System.out.println("Enter the number in hexadecimal notation");
- do {
- isIncorrect = false;
- line = scan.nextLine();
- isIncorrect = checkLine(line);
- }while (isIncorrect);
- return line;
- }
- public static boolean checkLine (String line) {
- boolean flag = false;
- if (line.length() == 0){
- System.out.println("You entered an empty line!\nRepeat enter");
- flag = true;
- }
- return flag;
- }
- public static void changeHexadecimalNumber(String hexadecimalNumber, int[] sourceNumber) {
- try {
- for (int i = 0; i < hexadecimalNumber.length(); i++) {
- if (hexadecimalNumber.charAt(i) == 'A'){
- sourceNumber[i] = 10;
- } else if (hexadecimalNumber.charAt(i) == 'B'){
- sourceNumber[i] = 11;
- } else if (hexadecimalNumber.charAt(i) == 'C'){
- sourceNumber[i] = 12;
- } else if (hexadecimalNumber.charAt(i) == 'D'){
- sourceNumber[i] = 13;
- } else if (hexadecimalNumber.charAt(i) == 'E'){
- sourceNumber[i] = 14;
- } else if (hexadecimalNumber.charAt(i) == 'F'){
- sourceNumber[i] = 15;
- } else {
- sourceNumber[i] = Integer.parseInt(String.valueOf(hexadecimalNumber.charAt(i)));
- }
- }
- }catch (NumberFormatException e){
- hexadecimalNumber = inputLine();
- changeHexadecimalNumber(hexadecimalNumber, sourceNumber);
- }
- }
- public static int convertToDecimalNumberSystem(int[] sourceNumber){
- int decimalNumber = 0;
- for (int i = 0; i < sourceNumber.length; i++) {
- decimalNumber += sourceNumber[i] * Math.pow(16, sourceNumber.length - (i + 1));
- }
- return decimalNumber;
- }
- public static void outputResult(int decimalNumber) {
- System.out.println("Your decimal number: " + decimalNumber);
- }
- public static void main(String[] args) {
- System.out.println("This program converts a number from hexadecimal to decimal");
- String hexadecimalNumber = inputLine();
- int[] sourceNumber = new int[hexadecimalNumber.length()];
- changeHexadecimalNumber(hexadecimalNumber, sourceNumber);
- int decimalNumber = convertToDecimalNumberSystem(sourceNumber);
- outputResult(decimalNumber);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement