본문 바로가기

📚Study Note/JAVA

printf() _ 서식출력메소드

/*====================================================
■■■■ 자바 기본 프로그래밍 ■■■■■
- 자바의 기본 입출력 : printf()
=====================================================*/

public class Test016
{
	public static void main(String[] args)
	{
		System.out.print("AAA");
		System.out.print("BBB");
		System.out.print("CCC\n"); // \n은 개행

		//서식 출력 메소드
		System.out.printf("12345678901234567890");
		System.out.printf("12345678901234567890\n");
		System.out.printf("12345678901234567890%n");


		System.out.printf("%d + %d = %d\n", 10, 20, 30);

		/*
		AAABBBCCC
		1234567890123456789012345678901234567890
		12345678901234567890
		10 + 20 = 30
		계속하려면 아무 키나 누르십시오 . . .
		*/


		System.out.printf("%d\n", 123);
		System.out.printf("%7d\n", 123);
		System.out.printf("%10d\n" , 123);
		System.out.printf("%010d\n" , 123);
		// %d 사이에 위치한 10 의 의미 : 총 10칸의 공간에 우측정렬하는 것이다.
		/*
		123
			123
			   123
		0000000123
		
	   */

	   System.out.printf("%d\n" ,365);
	   System.out.printf("%+d\n", 365);  
	   System.out.printf("+%d\n", 365);

	   /*
	   365
		+365
		+365
	   */
	   System.out.printf("%d\n", +365);
	   //365
	   System.out.printf("%d\n", -365);
	   //System.out.printf("%-d\n", 365);
	   //자바는 대부분 컴파일 에러인데 (컴파일 과정에서 에러 찾아줌)
	   //서식은 런타임 에러난다. ex %d에 3,14넣는다고 했을 때 컴파일은 된다. 그런데 런타임 에러난다.
	   //%d사이에 -넣으면 런타임 에러
	   System.out.printf("-%d\n", 365);
	   //-365

	   System.out.println();
	   // 개행

	   System.out.printf("%(d\n", -365);			// check~~!!
	   
	   System.out.printf("%(d\n", 365);
	   /*(365)
		365
		*/
	   //System.out.printf("%d\n", 'A');
	   //위에 런타임 에러발생
	   System.out.printf("%c\n", 'A');
	   //System.out.printf("%c\n" , "ABCD"); //이것도 런타임 에러발생
	   System.out.printf("%s\n", "ABCD");
	   //문자는 c 문자열은 s에 담는다.

	   System.out.println();
	   System.out.printf("%h\n", 365);
	   System.out.printf("%o\n", 24);
	   //h는 16 진수 o는 8진수로 표현한다.
	   /*
	   16d
	   30*/

	   System.out.printf("%s\n" , "true");
	   System.out.printf("%b\n"	, true);
	   /*
	   true
		true*/
		//위는 문자열 true이고 아래는 현상 true 이다.


		//-----------------(    %f     )-------------------------

		System.out.println(); //개행

		System.out.printf("%f\n", 123.23);
		System.out.printf("%.2f\n", 123.23); //(반올림 처리 돼서 소수점 둘째자리까지)
		System.out.printf("%.2f\n", 123.236);
		System.out.printf("%.2f\n", 123.231);
		System.out.printf("%8.2f\n", 123.236); //전체 다 8칸을 주는 것(따라서 앞의 공백 2칸이생긴다)
		System.out.printf("%2.2f\n", 123.1234); //표현범위보다 더 적은 공백이 확보되면 그냥 표현할 수 있는대로 나온다.

/*
123.230000
123.23
123.24
123.23
  123.24
123.12*/



		}
}