JAVA #11 : 이진법 변환기 만들기 : While, StringBuffer, reverse()

반응형

10진법으로 표현된 숫자를

2진법으로 변환하는 프로그램을 만드시오


먼저 10진법 수를 이진법으로 변환하기 위해서 10진법 수 이하 a를 2로 나누어

각 실행 한 번에 나머지를 차례대로 입력하고 마지막에 이를 거꾸로 뒤집어 출력해야 한다.

public static void main(String[] args){
		
	int binary = 2022; // 2진법으로 변환할 수
	String a="";
        
	while (binary >= 1) {
    	a+= (binary % 2)+""; // 2로 나눈 나머지를 a에 누적
    	binary /= 2; // 다음 수를 위해 2로 나누기
    	}
		
	StringBuffer aa= new StringBuffer(a);
    	//a를 StringBuffer형으로 캐스팅
	
	aa.reverse();
    	//캐스팅한 aa를 reverse()메서드로 문자열 뒤집기	
	System.out.println(aa);
}

 

문자열(Sting)의 내용을 최대한 간결하게 순서를 변화시키는 방법을 찾는 게 필요했다.

이전의 방법을 사용하면 String을 toChaArray()로 char 타입의 배열에 넣고 순서를 치환했을 것이다

reverse() 메서드를 이용하면 여러 단계를 보다 짧게 코딩할 수 있게 된다

 

StringBuffer(): String과 다르게 객체를 새로 선언하지 않고, 객체를 변화시키는 클래스.

reverse(): StringBuffer() 나 StringBuilder()에서 객체가 가진 문자열을 뒤집는 메서드.

 

 

반응형