2023. 3. 14. 17:19ㆍJava/Java
1. 출력
1) 형식화된 출력 - printf()
- println()과 달리 형식 지정자를 사용하여 출력 형식을 지정할 수 있다
%d: 10진형식, %o: 8진형식, %f: 부동소수점 형식 등등..
- 또한 형식 지정자를 사용하여 소수점 아래 몇자리까지 출력할 것인지, 왼쪽 오른쪽 정렬을 지정하여 출력할 수 있다.
%,.2f: 부동소수점 형식으로 소수점 아래 2자리까지 출력하며, 소수점 위는 3자리마다 ' , ' 를 찍어 출력
%20s: 최소 20글자 출력공간 확보하고 우측정렬하여 출력
2) BufferedWriter
- bw.write(버퍼에 넣을 데이터);
- int타입을 버퍼에 담아 출력했는 데 제대로 안나오는 경우 -> bw.write(Integer.toString(n));
[예시] "Hello" 버퍼에 담아 출력하기
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "Hello";
bw.write(str); //bw.write(버퍼에 넣을 데이터);
bw.newLine(); //줄바꿈
bw.flush(); //버퍼에 있는 문자열을 화면으로 한번에 출력시킴
bw.close(); //버퍼 닫기
2. 입력
1) 화면에서 입력받기 - Scanner
- 콘솔에서 사용자의 입력을 받기 위해 사용하는 클래스이다.
import java.util.Scanner; //API import
Scanner scan = new Scanner (System.in); //객체 생성
String input = scan.nextLine(); // 문자열을 입력받아 input변수에 저장
int input2 = scan.nextInt(); //정수 입력받음
2) BufferedReader
- Enter만 경계로 인식
- 입력된 데이터는 String타입으로 고정되어 있으므로 다른 형태로 사용하고 싶을 경우 형변환 필요
- 여러 입력값을 받았을 경우 -> StringTokenizer 또는 split() 사용하여 쪼개기
- 예외처리 필요
[예시] 한개의 정수 값 입력 받는 경우
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); //int로 형변환하여 변수에 넣기
[예시] 여러개의 정수 값을 띄어쓰기로 구분해 입력 받는 경우
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
//Case1. StringTokenizer 사용
StringTokenizer st = new StringTokenizer(str);
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
//Case2. split() 사용
String arr[] = str.split(" "); //그때그때 Integer.parseInt(arr[0])와 같이 형변환해서 사용
[버퍼 관련 자세한 설명] https://jhnyang.tistory.com/92