자바의정석

[자바의 정석 - 기초편] ch2-12,13 printf를 이용한 출력

유호야 2022. 1. 19. 21:23
반응형

public class PrintfEx1 {

	public static void main(String[] args) {
		System.out.println(10/0.3);
	}

}

/3이 아니라 /0.3으로 해야 소수점 결과를 얻을 수 있다.

값을 어떻게 출력할 지 지시해준다는 의미에서 "지시자"를 사용할 수 있다.

JAVAAPI 문서에서 Formatter라는 메소드를 찾으면 다양한 지시자를 확인할 수 있다.

%n이나 \n이나 둘 다 줄바꿈을 실행하는 개행문자이다.

하지만 \n 은 os에 관계없이 줄바꿈을 실행하기 때문에 \n을 사용할 것을 권장한다.

 


10진수가 영어로 decimal / 8진수 octal 16진수는 hexa

Integer.toBinaryString(15) 메소드를 통해서 2진수로 변경가능 

 8진수에는 0이붙고, 16진수에는 0x가 붙는다.

지시자 접두사를 출력되게 하고 싶으면 "%#o"를 입력한다. 

지시자 g는 소수점 포함 7자리를 간략하게 보여준다.(%f 와 %e 중에 더 알맞은 형식으로 출력해준다.

 

 


지시자 앞에 - 를 붙이면 왼쪽 정렬

지시자 앞에 0을 붙이면 공백을 0으로 채운다 

소수점자리 몇 번째까지 입력할 것인지 설정 가능하다
(소수점 포함한 자리수를 의미함) 

지시자 앞에 .8 를 입력할 시에 : 전체 문자열 중에 8자리만 출력해라

System.out.printf("[%.1s]", 10);

이렇게 입력할 경우에 숫자가 문자로 자동 변환되서 출력이 되나부다...


public class PrintfEx1 {

	public static void main(String[] args) {
		System.out.printf("[%d]", 10);
		System.out.printf("[%5d]", 10);
		System.out.printf("[%-5d]", 10);
		System.out.printf("[%05d]", 10);
		System.out.printf("[%.1s]", 10);
	}

}

지정한 값보다 더 긴 "1234567"을 입력하더라도 "12345"가 아닌 "1234567" 모두 출력된다 .......
why?!

실수/문자열 선언의 예제

반응형