날아라쩡글이의 블로그입니다.

자바콘솔에서 출력하는 방법, 이스케이프 문자 본문

java (학원 전) story

자바콘솔에서 출력하는 방법, 이스케이프 문자

날아라쩡글이 2021. 8. 4. 10:52
728x90
반응형

자바 콘솔화면에서 출력하는 3가지 방법 + 이스케이프 문자
자바에서는 우리가 콘솔에 크게 3가지 방법으로 출력을 할 수 있는데 각각 다음과 같다. 
print () : 괄호안의 내용을 출력하고 그다음 출력할 것이 있으면 출력된 내용 오른쪽 칸부터 출력을 한다.

println() :  print a line의 줄임말로써 괄호안의 내용을 출력하고 그 다음 출력할 것이 있으면 출력된 내용
다음줄의 첫번째 칸부터 출력을 시작한다. 
printf() : print in format의 줄임말로써 괄호안의 내용을 형식에 맞춰서 출력하고 그 다음 출력할 것이 있으면
출력된 내용 오른쪽 칸부터 출력을 시작한다. 

이스케이프 문자 
이스케이프 문자는 \와 조합되서 지정된 크기의 공백이나 혹은 자바 내부적으로 사용되는 기호를 우리가 사용할 수 있게 만들어준다. 
대표적인 이스케이프 문자는 다음과 같다.
\n :  개행문자. 만나는 즉시 그 출력위치를 다음줄의 첫번째 칸으로 옮긴다. (\=백스페이스)
\t :  탭 공백. 만나는 즉시 약 스페이스 4개이하의 커다란 공백을 넣는다. 
\' : '를 문자로써 써야하는 경우가 아닌 '가 아닌 \'라고 적어준다. 
\" : "를 문자로 써야하는 경우가 아닌 "가 아닌 \"라고 적어준다.

public class Ex08Print {

    public static void main(String[]args) {

        //출력할 글자들을 담는 String 변수들

        String str1 ="abc";

        String str2 ="DEF";

        

        //1.print();

        System.out.println();

        System.out.println("----------");

        System.out.println("print() : ");

        System.out.print(str1);

        System.out.print(str2);

        System.out.println();

        System.out.println("----------");

        System.out.println();

       

        //2.println() 

        System.out.println("----------");

        System.out.println("println() :");

        System.out.println(str1);

        System.out.println(str2);

        System.out.println("----------");

        System.out.println();

        

        

        //3.printf()

        System.out.println("----------");

        System.out.println("printf() : ");

        System.out.printf("%s", str1);// 형식을 일일히 지정해줌

        System.out.printf("%s", str2);

        System.out.println();

        System.out.println("----------");

        

        

        //4. 각종 이스케이프 문자들

        //4-A.\n

        System.out.println("4-A.\\n");//역슬래시가 2개가 들어가면 출력은 1개 \n이들어가면 줄바꿈으로 인식

        System.out.print(str1+"\n");

        System.out.println(str2);

        System.out.println();

        

        //4-B. \t

        System.out.println("4-B.\\t");

        System.out.print(str1);

        System.out.print("\t");// 4개이하의 커다란 공백이 생김

        System.out.println(str2);

        System.out.println();

        

        //4-C. \'

        //char변수 myChar에 '를 넣어보자 

        char myChar = '\'';//컴퓨터상에서 실수가 아닌 입력을 한거구나 하고 인식을 하게됨. 

        System.out.println("4-C.\\'");

        System.out.println("myChar의 현재 값: "+myChar);

        //4-D. \"

        str1 = "\"";

        System.out.println("4-D. \\\"");

        System.out.println("str1의 현재 값 : "+str1);

               

         

    }

}

 

 

printf()

printf()은 괄호 안에 출력할 내용을 담은 String 값과 그 String 값이 출력할 때 필요로 하는 값들을 같이 넘겨준다.

 

printf()는 다양한 종류의 값을 %문자를 사용하여, 특정 형식을 지정하고, 그에 맞춰서 출력이 된다.

 

public class Ex09prinf {

    public static void main(String[]args) {

        System.out.println("1.10진법 정수 ('D'ecimal)");

        int num = 321;

        //A. 10진법 정수를 그대로 출력하라.

        System.out.printf("1-A.[%d]\n",num);

        //B. 10진법 정수를 오른쪽 정렬 5자리로 맞춰서 출력하라 

        System.out.printf("1-B.[%5d]\n",num);//총칸은 5개로 만든 후 오른쪽으로 3자리를 입력함.

        //C. 10진법 정수를 오른쪽 정렬 2자리로 맞춰서 출력하라 

        System.out.printf("1-C.[%2d]\n", num);//지정한 자리수보다 출력할 자리수가 많으면 지정한 자리수는 무시하게 된다. 

        //D. 10진법 정수를 왼쪽 정렬 5자리로 맞춰서 출력하라 

        System.out.printf("1-D.[%-5d]\n",num);

        //E. 10진법 정수를 왼쪽 정렬 2자리에 맞춰서 출력하라 

        System.out.printf("1-E.[%-2d]\n", num);

        //F. 10진법 정수를 오른쪽 정렬 5자리에 맞추고 왼쪽 빈 공간이 있으면 0으로 채워서 출력하라 

        System.out.printf("1-F.[%05d]\n", num);//오른쪽 정렬을 0으로 채워라는 존재하지 않는다. 32100을 표시할 수 있기때문

        System.out.println("---------------");

        //String은 왼쪽에 0을 붙일 수 없다. 문자로써 아무 글자 없는 , 글자로써 사용을 할 수 있기때문에 어려움

        //나머지는 가능하다. 

        System.out.println("2.16진법 정수 (He'x'adecimal)");

        num = 2478;

        //A. 16진법 정수를 그대로 출력하되 알파벳이 있을 경우 소문자로 출력해라 

        System.out.printf("2-A.[%x]\n", num);

        //B. 16진법 정수를 그대로 출력하되 알파벳이 있을 경우 대문자로 출력해라 

        System.out.printf("2-B.[%X]\n", num);

//        System.out.printf("%h", num);

//        System.out.printf("%H", num);

        //C. 16진법 정수를 오른쪽 정렬 5자리로 맞추고 알파벳이 있으면 대문자로 출력하라 

        System.out.printf("2-C.[%5X]\n",num);

        //D. 16진법 정수를 왼쪽 정렬 5자리로 맞추고 알파벳이 있으면 소문자로 출력하라

        System.out.printf("2-D.[%-5x]\n", num);

        //E. 16진법 정수를 오른쪽 정렬 5자리로 맞추고 알파벳이 있으면 대문자로 출력하고 왼쪽 빈자리가 있으면 0 으로 채워라.

        System.out.printf("2-E.[%08X]\n", num);

        System.out.println("---------------");//10~15숫자는 ABCDEF으로 나타내도록 한다. 한자리숫자로 표현할 수 있게.

        System.out.println();

        System.out.println("3.실수('f'loat)");//f를 쓰지만 double타입의 변수도 들어갈 수 있음

        double myDouble = 123.456;

        //A. 실수를 그대로 출력해라

        System.out.printf("3-A.[%f]\n", myDouble);//f는 10자리를 맞춰줌 1~0까지 .도 한자리를 차지함

        //B. 실수를 오른쪽 정렬 총 15자리로 맞춰서 출력해라 

        System.out.printf("3-B.[%15f]\n",myDouble );

        //C. 실수를 왼쪽 정렬 총 5자리로 맞춰서 출력해라 

        System.out.printf("3-C.[%-5f]\n",myDouble);//사용자의 요구사항을 무시함

        //D. 실수를 오른쪽 정렬하여 소숫점 두번째 자리까지 출력해라

        System.out.printf("3-D.[%.2f]\n",myDouble);//2번째자리까지 출력하고,반올림이 됨

        //E. 실수를 왼쪽 정렬 총 8자리로 맞추고, 소숫점은 2번째자리까지만 출력해라 

        System.out.printf("3-E.[%-8.2f]\n", myDouble);//-8은 전체자리로, 소수점은 2자리수까지 표현

        //F. 실수를 오른쪽 정렬 총 8 자리로 맞추고 왼쪽 빈공간은 0으로 채워서 소숫점 2번째자리까지만 출력해라 

        System.out.printf("3-F.[%08.2f]\n", myDouble);

        System.out.println("---------------");

        System.out.println();

        

        System.out.println("4.스트링 ('s'tring)");//S는 모든 소문자를 대문자로 출력하게 되어 s를 사용한다. 

        String str = "abcDEF";

        //A. 스트링을 그대로 출력해라 

        System.out.printf("4-A.[%s]\n",str);

        //B. 스트링을 모두 대문자로 출력해라 

        System.out.printf("4-B.[%S]\n", str);

        //모두다 동일하지만 왼쪽 빈자리를 0으로 채우는 것은 안됨.

        System.out.println("---------------\n");

        

        //printf()를 사용할 때 주의할 점

        //1. 올바르지 않은 %문자를 사용하면 에러가 발생한다.

       // System.out.printf("%q\n", 123);//unknownFormat으로 존재하지 않는다고 뜸

//        System.out.printf("%03\\n",1);

//        System.out.printf("%08s\n", "abc");

        //2. %문자와 넘겨주는 값의 데이터 타입이 다르면 에러가 발생한다. 

//            System.out.printf("%d\n",12.34); double인데 d로 설정함

//        System.out.printf("%f\n", 123);

        //3. %문자가 아니라 정말로 % 라는 글자 자체를 입력할 때에는 %% 라고 써주면 된다. 

        System.out.printf("상위%d%%입니다.\n", 10);//백분율하기위하여 정수값 나타내면서 %를 넣을 경우 %입이란 문자로 인식함

        //4.한개의 printf 안에 다양한 % 문자가 여러개 들어갈 수도 있다. 

        System.out.printf("%d %f %s %d %s\n", 1,2.3,"abc", 45, "def");

        

        //5. %문자의 갯수보다 뒤에 나오는 값이 많더라도 에러는 발생하지 않는다. 

        //왜냐면 맨 앞의 값부터 차례대로 들어가는 형태이기 때문이다. 

        System.out.printf("%d %d %d %d", 1,2,3,4,5);

        System.out.println();

        //6. % 문자의 갯수가 뒤에 나오는 값보다 많으면 에러가 발생한다. 

//        System.out.printf("%d %d %d %d ", 1,2,3);

        System.out.println("---------------");

        System.out.println();

        

       

        

        

        

    }

}

 

반응형

'java (학원 전) story' 카테고리의 다른 글

if 제어문  (0) 2021.08.04
Scanner  (0) 2021.08.04
연산자 02  (0) 2021.08.03
java class이름 변경시 (Tip)  (0) 2021.08.03
연산자  (0) 2021.08.03
Comments