Backend/JAVA

JAVA Stream, 제어문자, 서식문자

쏠솔랄라 2023. 1. 31. 20:21

 

IO 데이터 입출력

 

IO: Input / Output ; 입출력

 

CPU 기준으로 데이터가 들어가면 입력, 나오면 출력

 

Stream

JAVA에서 데이터를 주고받기 위한 통로

모든 IO는 stream을 통해 데이터를 주고받는다

표준 입출력을 제외한 모든 IO에서는 stream을 직접 만들어야 한다

(C, JAVA 모두 stream 방식)

 

표준 입출력

 

System.in : 표준 입력 스트림(객체)

System.out : 표준 출력 스트림(객체)

 

.println(); 출력한 후 다음줄로 이동

.print(); 출력만

.printf(); C언어의 잔재

 

System.out.print("출력만");

System.out.println("출력한 후 다음줄로 이동");

 

 


 

제어문자

 

: 문자열에서(콘솔창에서) 특수한 기능을 하는 문자

 

문자열에서 실행하고자 하는 위치에 \(역슬래쉬)를 적고 맞는 문자를 적는다

약 30종

대부분 출력과 연관이 있다

 

 

\n : Line Feed, New Line

: 커서를 다음줄로 이동시키는 제어문자

System.out.println("a\nb");

System.out.println("ab");

->

a

ab

 

\t : Horizontal Tab

: 9

: 커서를 탭(tab) 크기만큼 이동시키는 제어문자

프로그램마다 다르며, 일반적으로 영문자, 숫자 기준 8글자, 한글 기준 4글자

System.out.println("이름\t : 홍길동")

System.out.println("전화번호 : 010-0000-0000")

-> ABCabcdef

이름        : 홍길동
전화번호 : 010-000-0000

 

\r : Carriage Return(Enter)

: 13

: 커서를 다음 줄의 처음으로 이동시키는 제어문자

System.out.println("abcdef\rABC")

-> 

abcdef

ABC

 

\b : Back Space

: 8

: 커서를 왼쪽으로 한 칸 이동시키는 제어문자(덮어쓰기)

System.out.println("abcdef\bABC")

-> abcdeABC

 

* : 문자열에서 특수한 기능을 하는 문자들
\ :제어문자를 사용하기 위한 기호
" " : 문자열 데이터를 구별하기 위한 기호

 

System.out.println("G:\\Users\\AI활용 소프트웨어")

-> G:\Users\AI활용 소프트웨어

 

 


 

서식문자

 

: 어떤 데이터 타입으로 설정할지를 결정하는 문자

 

문자열에서 데이터를 넣고자 하는 위치에 %를 적고 형식에 맞는 문자 입력

서식문자와 입력되는 데이터의 관계는 반드시 1:1로 매칭되어야 한다 ; 개수가 동일해야 하며 형식이 일치해야 한다

 

.printf(); 

C언어의 잔재로 많이 사용하지는 않음

 

 

%d : 정수

 

%f : 실수

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

-> 123.456778 ; %f 기본 출력은 소수점 6째자리

 

%c : 문자

System.out.printf("%c, %d/n", 'A', (int)'A');

-> A, 65

 

%s : 문자열

System.out.printf("%s\n", "안녕하세요")

 

%o : 8진수 %x : 16진수

System.out.printf("%o %x\n", 127, 0127)

System.out.printf("%o %x\n", 127, 127)

System.out.printf("%o %x\n", 127, 0x127)

->

177 57
177 7f
177 127

 

 

확장형 서식문자

 

 System.out.println("|12345|");

 System.out.println("|%05d5|\n", 10);

 System.out.println("|%-5d|\n", 10);

 

 System.out.println("|%13.5f|\n", 123.456);

 System.out.println("|%.2f|\n", 123.456);

 System.out.println("|%-10.2f|\n", 123.456);

 

->

|12345|
|000105|
|10   |


|    123.45600|
|123.46|
|123.46    |