간이 MBTI 검사 v 1.0




package pad;

import java.util.Scanner;

public class Pad {

	public static void main(String[] args) {
		new Byul();
	}
}

class Byul {
	private final String[][] data = { { "ESTJ", "엄격한 관리자" }, { "ESTP", "모험을 즐기는 사업가" }, { "ESFJ", "사교적인 외교관" },
			{ "ESFP", "자유로운 영혼의 연예인" }, { "ENTJ", "타고난 리더" }, { "ENTP", "뜨거운 논쟁을 즐기는 변론가" }, { "ENFJ", "선도자" },
			{ "ENFP", "재기발랄한 활동가" }, { "ISTJ", "청렴결백한 논리주의자" }, { "ISTP", "만능 재주꾼" }, { "ISFJ", "용감한 수호자" },
			{ "ISFP", "호기심 많은 예술가" }, { "INTJ", "용의주도한 전략가" }, { "INTP", "논리적인 사색가" }, { "INFJ", "통찰력 있는 선지자" },
			{ "INFP", "중재자" } };

	private final String[] questions = { "1. 나는 외향적이다.\n2. 나는 내향적이다.", "1. 나는 현실적이다.\n2. 나는 이상주의자다.",
			"1. 나는 합리성을 우선시한다.\n2. 나는 인간 관계를 우선시한다.", "1. 나는 체계적인 편이다.\n2. 나는 즉흥적인 편이다." };
	private Scanner sc;
	private boolean[] result;

	Byul() {
		this.sc = new Scanner(System.in);
		this.result = new boolean[4];
		this.main();
		this.sc.close();
	}

	private void main() {
		System.out.println(this.getTitle());
		try {
			System.in.read();
		} catch (Exception e) {
		}

		System.out.println(this.getResult());
	}

	private String getResult() {
		StringBuilder sb = new StringBuilder();

		for (int i = 0; i < 4; i++) {
			System.out.println(this.questions[i]);
			int input = this.input();
			this.result[i] = (input == 1);

			switch (i) {
			case 0:
				sb.append((this.result[i]) ? "E" : "I");
				break;
			case 1:
				sb.append((this.result[i]) ? "S" : "N");
				break;
			case 2:
				sb.append((this.result[i]) ? "T" : "F");
				break;
			case 3:
				sb.append((this.result[i]) ? "J" : "P");
				break;
			}
		}

		int index = -1;
		for (int i = 0; i < this.data.length; i++) {
			if (sb.toString().equals(this.data[i][0])) {
				index = i;
				break;
			}

		}

		String result = sb.toString();
		sb.setLength(0);
		sb.append("나는 [ " + result + " ]다.\n");
		sb.append(this.data[index][1] + "\n");
		return sb.toString();
	}

	private String getTitle() {
		StringBuilder sb = new StringBuilder();
		sb.append("************************\n\n");
		sb.append("   간이 MBTI 검사 v 1.0\n\n");
		sb.append("\tdesigned by Byul\n\n");
		sb.append("************************\n");
		sb.append("[ Enter를 눌러서 시작 ]");

		return sb.toString();
	}

	private int input() {
		return this.sc.nextInt();
	}
}

댓글

이 블로그의 인기 게시물

substring 예제: 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라

배열, 리스트, 해쉬셋 연습 : 1 부터 45 까지 중복하지 않는 숫자 6개 생성하는 프로그램

다형성 추가정리, instanceof