14를 2진수로 나타내면 1110이다
int num = 14;
String a = Integer.toBinaryString(num); // 1110
내가 원하는건 01110 이다
String.format()을 이용하자!
답부터 적으면
String b = String.format("%05d", Integer.parseInt(Integer.toBinaryString(14)));
System.out.print(b); // 01110
왜이렇게 되는걸까?
우선 format의 앞에 파라미터를 확인하자
%d -정수
%f -실수
%s -문자열
%5d - 5자리 표현
-> 뒤에값이 5자리 미만이라면 공백으로표시
%05d - 공백대신 0으로 표시
이제 앞에 파라미터는 이해가 되었을 것이다.
그렇다면
Integer.parseInt(Integer.toBinaryString(14))
이건 무엇인고..?
한문장씩 풀어서 이해해보자
Integer.toBinaryString(14)
int형 14를 2진수로 바꾸고 문자열로 저장한다. // "1110"
Integer.parseInt()
받은 문자열을 정수로 바꾼다. // 1110 (천백십)
String.format(%05d, ... )
받은 정수를 형식에 맞춰서 string에 저장한다. // "01110"
이것을 변수를 이용해서 쉽게 나타내보자
int n = 5;
int num = 14;
String c = String.format("%0"+n+"d", Integer.parseInt(Integer.toBinaryString(num)));
System.out.print(c);
"%0"+n+"d"
문자열 연산으로 자리수를 더 쉽게 나타내었다.
질문 잘 받아주신 자바 오픈카톡방의 뽀로로라는 아이디를 쓰시고 계신 분께 감사..ㅠㅠㅠ
'language > 자바' 카테고리의 다른 글
자바 HttpServletRequest (0) | 2022.01.27 |
---|---|
자바 Integer.parseInt() 진수 표현 (0) | 2022.01.19 |
자바 String, StringBuffer, StringBuilder (0) | 2022.01.19 |
자바 Scanner nextLine 오류 buffer (0) | 2022.01.19 |
자바 2차원 배열길이 length (0) | 2022.01.19 |