https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
Formatter (Java Platform SE 7 )
'e' '\u0065' Requires the output to be formatted using computerized scientific notation. The localization algorithm is applied. The formatting of the magnitude m depends upon its value. If m is NaN or infinite, the literal strings "NaN" or "Infinity", resp
docs.oracle.com
보통 Format함수 쓸 때는
%[flags][width]conversion
이런 형식으로다가 쓴다
예를 들면
%02d
이런식으로 쓴다는 건데
flags는 포맷할 때 특정한 역할을 수행해주는 녀석들이고 (종류는 위의 공식문서에서 확인해보자)
width는 포맷팅을 몇글자로 할건지 정하는 녀석이다.
conversion은 포매팅할 값의 타입으로 생각하면된다.
일단 서론은 여기까지 마치도록 하고 이 flags에는 지원하는 타입이 따로 존재한다.
이 게시글의 타이틀 처럼 만약 %02s 이런식으로 쓰면 에러가 발생하는데
Exception in thread "main" java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0
이렇게 나올 것이다.
저 에러의 의미는 Flag와 Conversion이 서로 미스매치 한다는 의미이고 그렇다면 Flag 0은 Conversion s를 지원 안한다는 소리!
위의 자바 공식 문서에서 Flags 파트를 보면 General이나 Character, Date/Time은 zero-padded가 지원안된다고 되어있다.
즉 그 말은 숫자타입들의 Conversion만 0으로 채우는게 가능하다는 소리!
앞으로 포맷팅할 때 0채우고 싶으면 s 말고 d써서 붙이자.
그리고 항상 뭐가 안되면 공식문서도 한번 확인해보는 습관을 가지자..... 공식문서 최고
'TIL' 카테고리의 다른 글
재귀함수 공부...(feat. Counting Cells in a Blob) (0) | 2022.04.12 |
---|---|
재귀함수 공부하기.. (feat. 미로찾기) (0) | 2022.04.12 |
프로그래머스 : 베스트 앨범 (0) | 2022.04.07 |
백준 1874번 : 스택 수열 (0) | 2022.04.07 |
백준 3190 : 뱀 (0) | 2022.04.07 |
댓글