본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

문자열 포맷 형식 format(%/)을 이용한, 환율계산기

format("%", 변수)

format은 문자열 사이사이에 %로 형식값을 지정해 변수를 삽입해 출력하기 좋다.

 

 

예를들어,

아래와 같은 변수 3개를 큰따옴표 ""로 묶인 깔끔한 한줄로 출력할 수 있다는 소리다.

String name = "Alice";
int age = 30;
double height = 1.65;
System.out.printf("이름: %s, 나이: %d, 키: %.2f m\n", name, age, height);

 

 

위처럼 format % 다양한 형식값을 지원하고, 그의 속성은 아래와 같다.

%s: 문자열(string) 형식
%d: 10진(decimal) 정수 형식
%f: 부동 소수점(floating-point)형식
%b: boolean 값 형식
%c: 문자(char) 형식
%h: 해시 코드(hash code) 형식
%n: 새 줄(new line) 문자형식
%%: % 문자 자체를 출력할 때 형식

 

 

 

간단한 html과 위의 이론을 이용해 환율계산기를 만들어보자.

// class에 변수선언
private static final float USD_RATE = 0.6f;
private static final float JPY_RATE = 0.6f;
private static final float CNY_RATE = 0.6f;
private static final float GBP_RATE = 0.6f;
private static final float EUR_RATE = 0.6f;
//doget에 변수선언, won(금액 input name)과 operator(환율선택 select name)
String command = request.getParameter("command");
String won = request.getParameter("won");
String operator = request.getParameter("operator");
//HTML 구현
request.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		PrintWriter pw = response.getWriter();
        pw.print("<html><title>환율 계산기</title>");
		pw.print("<font size=5>환율 계산기</font><br>");
		pw.print("<form name='frmCalc' method='get' action='/pro06/calc'	/>");
		pw.print("원화: <input type='text' name='won' size=10		/>");
		pw.print("<select name='operator'	>");
		pw.print("<option value='dollar'>달러</option>");
		pw.print("<option value='en'>엔화</option>");
		pw.print("<option value='wian'>위안</option>");
		pw.print("<option value='pound'>파운드</option>");
		pw.print("<option value='euro'>유로</option>");
		pw.print("</select>");
		pw.print("<input type='hidden' name='command' value='calculate'	/>");
		pw.print("<input type='submit' value='변환'	/>");
		pw.print("</form>");
		pw.print("</html>");
		pw.close();
// 결과 출력할 폼 지정
if(command != null && command.equals("calculate")) {
			String result = null//초기화
            
            //예외처리
            //try는 예외를 감지, catch는 예외 처리
            try{
            //Float.parseFloat String을 float로 변환
             result = calculate(Float.parseFloat(won), operator); 
            }catch(Exception e1){
            system.out.print("값안넣었음")
            }
            
            
			pw.print("<html><font size=10>변환결과</font><br>");
			pw.print("<html><font size=10>" + result + "</font><br>");
			pw.print("<a href='/pro06/calc'>환율 계산기</a>");
			return;
		}
// 환율계산하는 함수
private static String calculate(float won, String operator) {
		
		String result =null; //초기화
        
        //equals()
        //equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만,
		//== 연산자는 비교하고자 하는 대상의 주소값을 비교합니다.
		if(operator.equals("dollar")) {
			result = String.format("%f", won / USD_RATE); //문자열 형식 %f (실수형 형식)
		}else if(operator.equals("en")) {
			result = String.format("%f", won / JPY_RATE);
		}else if(operator.equals("wian")) {
			result = String.format("%f", won / CNY_RATE);
		}else if(operator.equals("pound")) {
			result = String.format("%f", won / GBP_RATE);
		}else if(operator.equals("euro")) {
			result = String.format("%f", won / EUR_RATE);
		}
		return result;
	}

'JAVA' 카테고리의 다른 글

JAVA 연산규칙  (0) 2023.03.17
Java EE란?  (0) 2023.03.17
계약서, interface  (0) 2023.03.16
상속받다, extends와 implements의 차이  (0) 2023.03.16
상속받다, implements  (0) 2023.03.16