서식화된 문자열(Formatted String)

Agnes Park·2022년 1월 22일
0

JAVA

목록 보기
8/34

서식화된 문자열 (Formatted String)

  • 화면에 출력할때는 -> printf()
printf("서식문자열", 값1, 값2....)
  • 문자열(String)으로 만들때는 -> String.format()
String.format("서식문자열", 값1, 값2....)
  • format specifier (서식 지정자)
    %d : 십진수 정수로 출력
    %f : 실수 출력
    %s : 문자열 출력
    %c : '문자하나' 출력
    %x : 16진수 정수로 출력
    %% : % 출력
public class PrintFormatMain {

	public static void main(String[] args) {
		System.out.println("서식화된 출력: printf(), String.format()");

		
		double pi = Math.PI;	// 원주율 상수값 -> 수학 관련 상수 불러오기 Math.
		System.out.println(pi);
		
		// printf : print with format
		// printf("서식문자열", 값1, 값2....)
		// 서식문자열 안에 %로 시작하는 서식문자들..
		//System.out.println("원주율 %f\n");		// 오류: MissingFormatArgumentException -> 해결: %f(서식지정자)의 위치에 들어갈 실수값을 준비해야 함
		System.out.printf("원주율 %f\n", pi);		// %f : 기본 실수 출력 (기본적으로 소숫점 6자리까지 출력)
		System.out.printf("원주율 %.2f\n", pi);	// %.2f : 실수 출력 (소숫점 2자리까지 서식지정해서 출력)
		
		int age = 10;
		short grade = 3;
		
		System.out.printf("제 나이는 %d 살입니다. 학년은 %d 학년입니다\n", age, grade);
		System.out.printf("제 나이는 %d 살입니다. 학년은 %d 학년입니다\n", 64, 2);
		
		System.out.printf("%d, %x, %c, %X, %x\n", 65, 65, 65, 63, 63);	// %x, %X의 차이: 16진수의 알파벳을 소문자 OR 대문자로 찍는지의 차이
		
		// 출력폭 지정, 좌우 정렬
		System.out.printf("|%d|%d|%d|\n", 100, 200, 300);
		System.out.printf("|%5d|%5d|%5d|\n", 100, 200, 300);	// %5d: 폭5칸, 우측 정렬 (기본)
		System.out.printf("|%-5d|%-5d|%-5d|\n", 100, 200, 300);	// %-5d: 좌측 정렬
		
		System.out.printf("|%6.1f|\n", 182.364);	// 총 6자리, 소숫점 이하 1자리
		
		System.out.printf("제 이름은 [%10s] 입니다. 혈액형은 %c 형입니다.\n", "김만두", 'B');
		
		// % 출력 -> %%
		double rate = 134423.0 / 345678.0;
		System.out.printf("합격률은 %.1f%% 입니다\n", rate * 100);

		// 숫자에 패딩 가능 -> 0 으로 채우기
		System.out.printf("|%05d|%05d|%05d|\n", 100, 200, 300);
		
		
		// format 문자열을 따로 설정해서 사용 가능
		String fmt = "주소 : %s, 우편번호[%05d]";
		System.out.printf(fmt +"\n", "서울", 12345);
		System.out.printf(fmt +"\n", "광주", 45);
		System.out.printf(fmt +"\n", "대구", 776);
		
		
		System.out.println();
		
		
		// String.format()
		// 기본적으로 printf() 와 사용법은 동일함
		// 단, 화면에 출력하는게 아니라, 결과를 문자열(String) 으로 만들어서 리턴

		String.format("합격률은 %.1f%% 입니다", rate);	// 어떠한 결과도 출력 안됨.
		String result = String.format("합격률은 %.1f%% 입니다", rate);
		System.out.println(result);		// 즉, prinft는 서식화된 것을 출력하는 것이고, string.format는 서식화된 문자열을 만드는 것 => 사용방법 동일
	}

}

0개의 댓글