날아라쩡글이의 블로그입니다.
자바콘솔에서 출력하는 방법, 이스케이프 문자 본문
자바 콘솔화면에서 출력하는 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 |