충분히 쌓여가는
printf(), toBinaryString() 본문
println()의 단점
출력형식 지정불가 = 변수의 값을 그대로 출력
값을 변환하지 않고는 다른 형식으로 출력할 수 없다
ex. 소수점 둘째자리까지 출력 불가 / 정수를 16진수 혹은 8진수로 출력 불가(10로만 출력 가능)
따라서 prinf()를 사용하면됨
public class practice {
public static void main(String[] args) {
System.out.println(10.0 / 3); // 3.3333333333333335
}
}
public class practice {
public static void main(String[] args) {
System.out.printf("%.2f%n", 10.0 / 3); // 3.33
System.out.printf("%d%n", 0x1A); // 10진수 26
System.out.printf("%X%n", 0x1A); // 16진수 1A
}
}
printf의 지시자
지시자 | 설명 |
%b | boolean 형식으로 출력 |
%d | 10진(decimal) 정수의 형석으로 출력 |
%o | 8진(octal) 정수의 형식으로 출력 |
%x, %X | 16진(hexa-decimal) 정수의 형식으로 출력 |
%f | 부동 소수점(floating-point)의 형식으로 출력 |
%e, %E | 지수(exponent) 표현식의 형식으로 출력 |
%c | 문자(character)로 출력 |
%s | 문자열(string)로 출력 |
출력될 값이 차지할 공간을 숫자로 지정하기
public class practice {
public static void main(String[] args) {
System.out.printf("[%5d]%n", 10); // [ 10]
System.out.printf("[%-5d]%n", 10); // [10 ]
System.out.printf("[%05d]%n", 10); // [00010]
System.out.printf("[%s]%n", "www.tistory.com"); // [www.tistory.com]
System.out.printf("[%20s]%n", "www.tistory.com"); // [ www.tistory.com]
System.out.printf("[%-20s]%n", "www.tistory.com"); // [www.tistory.com ]
System.out.printf("[%.8s]%n", "www.tistory.com"); // [www.tist]
System.out.printf("[%14.10f]%n", 1.23456789); // [ 1.2345678900]
System.out.printf("[%14.6f]%n", 1.23456789); // [ 1.234568]
System.out.printf("[%.6f]%n", 1.23456789); // [1.234568]
}
}
8진수, 16진수에 접두사 붙이기
지시자 '%x'와 '%o'에 '#'을 사용하면 접두사 '0x'와 '0'이 각각 붙는다
'%X'는 16진수에 사용되는 접두사와 영문자를 대문자로 출력한다
public class practice {
public static void main(String[] args) {
System.out.printf("%x%n", 0xFFFF_FFFF_FFFF_FFFFL); // ffffffffffffffff
System.out.printf("%#x%n", 0xFFFF_FFFF_FFFF_FFFFL); // 0xffffffffffffffff
System.out.printf("%#X%n", 0xFFFF_FFFF_FFFF_FFFFL); // 0XFFFFFFFFFFFFFFFF
}
}
정수를 2진 문자열로 변환해주기
10진수를 2진수로 출력해주는 지시자는 없기 때문에,
정수를 2진 문자열로 변환해주는 Integer.toBinaryString(int i) 을 사용해야 한다
정수를 2진수 변환 -> 문자열 변환 하기 때문에 지시자 %s를 사용해야 한다
public class practice {
public static void main(String[] args) {
System.out.printf("%s", Integer.toBinaryString(8)); // 1000
}
}
'Java > JAVA1' 카테고리의 다른 글
타입간의 변환방법 (0) | 2023.05.15 |
---|---|
Scanner 클래스 (0) | 2023.05.15 |
기본형(Primitive type) (0) | 2023.05.14 |
두 변수의 값 교환 (0) | 2023.05.14 |
변수(variable), 상수(constant), 리터럴(literal) (0) | 2023.05.14 |