본문 바로가기
study/Java

[Java] 30. Test1 풀이 (format 메서드 구현하기)

by 금이패런츠 2022. 3. 28.
728x90
반응형
package chap12;
/*
 * format 메서드 구현하기
 * 메서드명 : String format (String str,int len,int align)
 * 기능 : 주어진 문자열을 지정된 크기의 문자열로 변환.
 *        나머지 공간은 공백으로채운다.
 *      (0 : 왼쪽 정렬, 1: 가운데 정렬, 2:오른쪽 정렬) 

[결과]
가나다    
  가나다  
    가나다
가나
 */

public class Test0322_1 {
	public static void main(String[] args) {
		String str = "가나다";
		System.out.println(format(str, 7, 0));
		System.out.println(format(str, 7, 1));
		System.out.println(format(str, 7, 2));
		System.out.println(format(str, 2, 0));
	}
	static String format(String str, int len, int align) {
		//문자열의 길이가 출력하는 길이보다 크거나 같은경우.
		if (str.length() >= len)
			return str.substring(0, len);
		
		//문자열의 길이가 출력하는 길이보다 작은경우.
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < len; i++) { //sb 객체에 출력해야하는 갯수만큼 공백채우기
			sb.append(" ");
		}
		int l = len - str.length(); //출력길이 - 문자열의길이 = 공백의 갯수
		switch (align) {
		 case 0:sb.replace(0, str.length(), str);break; //왼쪽정렬
		 case 1:sb.replace(l/2,str.length()+l/2, str);break; //가운데정렬
		 case 2:sb.replace(l,str.length()+l, str);break; //오른쪽정렬
		}
		return sb.toString(); //String 객체로 리턴
	}	
}
728x90
반응형