import java.util.Scanner; public class changeNumber { Scanner sc = new Scanner(System.in); changeNumber(){ showMenu(); } public void showMenu() { int menu; System.out.println("--------- 변 환 메 뉴 ---------"); System.out.println("\t1. 10진수 -> 2진수"); System.out.println("\t2. 2진수 -> 10진수"); System.out.println("\t3. 10진수 -> 16진수"); System.out.println("\t4. 16진수 -> 10진수"); System.out.println("\t5. 2진수 -> 16진수"); System.out.println("\t6. 16진수 -> 2진수"); while(true) { System.out.print("메뉴를 입력해 주세요 : "); menu = sc.nextInt(); if(!(menu >= 1 && menu <= 6)) { System.out.println("1~6까지의 숫자를 입력하세요!!"); continue; } break; } switch(menu) { case 1: tenTo2();break; case 2: twoTo10();break; case 3: tenTo16();break; case 4: hexTo10();break; case 5: twoTo16();break; case 6: hexTo2();break; } } public int inputTen() { boolean checkNum = true; int number; while(true) { checkNum = true; System.out.print("변환할 10진수 숫자를 입력해주세요 : "); String num = sc.next(); for (int i = 0; i < num.length(); i++) { if(num.charAt(i)<'0' || num.charAt(i)>'9') { checkNum = false; break; } } if(!checkNum) { System.out.println("올바른 숫자를 입력해주세요!"); continue; } number = Integer.parseInt(num); break; } return number; } public String inputTwo() { boolean checkNum = true; String number; while(true) { checkNum = true; System.out.print("변환할 2진수 숫자를 입력해주세요 : "); number = sc.next(); for (int i = 0; i < number.length(); i++) { if(number.charAt(i)<'0'|| number.charAt(i)>'1') { checkNum = false; break; } } if(!checkNum) { System.out.println("올바른 숫자를 입력해주세요!"); continue; } break; } return number; } public String inputHex() { boolean checkNum = true; String number; while(true) { checkNum = true; System.out.print("변환할 16진수 숫자를 입력해주세요 : "); number = sc.next(); number = number.toUpperCase(); for (int i = 0; i < number.length(); i++) { if(!((number.charAt(i)>='0'&&number.charAt(i)<='9')||(number.charAt(i)>='A'&&number.charAt(i)<='F'))) { checkNum = false; break; } } if(!checkNum) { System.out.println("올바른 숫자를 입력해주세요!"); continue; } break; } return number; } public void tenTo2() { int number = inputTen(); System.out.println(number + "을/를 2진수로 변환 : "+ Integer.toBinaryString(number)); } public void twoTo10() { String number = inputTwo(); System.out.println(number + "을/를 10진수로 변환 : " + Integer.parseInt(number,2)); } public void tenTo16() { int number = inputTen(); System.out.println(number + "을/를 16진수로 변환 : "+ Integer.toHexString(number).toUpperCase()); } public void hexTo10() { String number = inputHex(); System.out.println(number + "을/를 10진수로 변환 : " + Integer.parseInt(number,16)); } public void twoTo16() { String number = inputTwo(); int decNum = Integer.parseInt(number,2); System.out.println(number + "을/를 16진수로 변환 : "+ Integer.toHexString(decNum).toUpperCase()); } public void hexTo2() { String number = inputHex(); int decNum = Integer.parseInt(number,16); System.out.println(number + "을/를 2진수로 변환 : "+ Integer.toBinaryString(decNum)); } }
public class run { public static void main(String[] args) { changeNumber cn = new changeNumber(); } }
실행결과
'Programming > Java' 카테고리의 다른 글
자바의정석2판 List관련 예제 11-6 (0) | 2019.01.17 |
---|---|
Vector 공부하던중 ArrayIndexOutOfBoundsException 에 대하여. (0) | 2019.01.16 |
Calendar class 활용하기 (0) | 2018.12.31 |
Integer를 이용하여 진법변환하기 (0) | 2018.12.31 |
String class 활용하기 (0) | 2018.12.31 |